home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-12 | 187.4 KB | 4,379 lines |
-
- Gestalt Selectors List 2.5.10
- =============================
- First published: 12 October 1992, 13:15 CET (GMT+1)
- Last modified : 12 October 1994, 00:30 CET (GMT+1)
-
- This document lists all selectors for use with the Gestalt Manager known to
- the editor. These can include selector codes installed by Apple (system)
- software or by software from third and so called "fourth" parties (your
- software?).
- The information in this list is useful for programmers and other people who
- can use the Gestalt Manager with their software perhaps even using
- externals (with HyperCard, 4th Dimension etc.).
-
- This file can be best viewed with a mono-spaced font like Monaco. Because
- it is wrapped as setext you can use several utilities to index and read it.
- For the Macintosh you can use Easy View and on a UNIX system sv (setext
- viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu
- (or its mirrors!), archived respectively as:
- info-mac/text/easy-view-250.hqx
- info-mac/text/setext-viewer-05-unix.uu
-
- A single question mark indicates an uncertainty regarding the information
- in front of the question mark. Three question marks indicate complete
- absence of the information.
- See for more information about this list the chapters at the end.
-
- Contents
- --------
- Changes
- Contributions
- Changes Overview
- Gestalt Selector Codes
- Apple System Software (A-F)
- Apple System Software (G-L)
- Apple System Software (M-R)
- Apple System Software (S-Z)
- Apple Additional Software
- Third Parties Software
- Unknown Gestalt Selector Codes
- Apple Software
- Third Parties Software
- Gestalt Problems
- Gestalt Manager Calls
- Gestalt Manager Routines
- Undocumented Gestalt Manager Routines
- Gestalt Value Routines
- History
- Environs
- SysEnvirons
- Gestalt
- Reports
- AppleShare File & Print Server selector codes
- AppleTalk
- Copy protection using Gestalt
- Environs & SysEnvirons
- Executor Mac-emulator
- GestaltValue
- Glue code
- PPC Libraries
- QuickTime
- RAM Doubler 1.0
- Kilo-liners
- Direct Gestalt Calls
- Direct GestaltValue Calls
- GestaltSelectorZero
- GestaltBitTest
- Call Gestalt Function Direct
- Abbreviations
- Sources
- Related Software
- URL
- About this list
- Availability
- Acknowledgements
- Definitions and Format
- Use in Language
- Definitions
- Format Selector Entry
- Format Version Numbers
- Legal Stuff
- Notice of Liability
- Trademarks
- Distribution
- Editor's Address
-
- Changes
- =======
- All contributions and changes to this list since the previous version are
- listed with this chapter.
-
- Contributions
- -------------
- This section list the people who contributed information which is now
- included with this version of the list.
-
- ===========================================================================
- Contributions to the selector sections
- ===========================================================================
- Person Software Selector(s) added/changed
- ---------------------------------------------------------------------------
- Richard Buckle MacPPP mdev? PPP
- Marc Cooperman System (enablers) kbd
- Lawrence D'Oliveiro QuickDraw GX grfx, gfxa
- Dave Falkenburg System (enablers) cfrg
- Rick Gansler System (enablers) sysv
- Michael Hecht Macintosh Easy Open cp xlat
- Bill Hofmann System (enablers) proc
- David Lewis System (enablers) intd
- Spencer Low System? icon
- John Mancino System et al. aslm, easy, hdwr, mbox,
- ppc , proc, reno
- Roland Mansson System (enablers) icon, kbd , mach
- Carl R. Osterwald System (enablers) mach
- Marco Piovanelli Macintosh Easy Open cp xlat
- System: Standard File Package
- lang
- Thomas Reed Coffee Break app Cafe, SAVR
- Paul Reznick System (enablers) kbd , proc
- Rene G.A. Ros A La Carte cp AlaC
- Apple Menu Options cp CDJR
- Automated Diagnostics ext, part of Apple Personal
- Diagnostics 1.0 diag
- Blood cp Blad
- CD-ROM software hscd
- Coffee Break appl Cafe
- ColorSync ext cmta, cmtc
- Control Strip cp csvr, sdev, sdvr
- Date & Time cp / SuperClock cp
- MClk
- Desktop Strip cp CsWT
- File System Manager ext fs , fsm
- File Tracker Controls cp
- FWCP, ReSp
- FileWave 2.0 FW14
- Finder 7.1.3 fnda, fnd*, fndc, fndr
- KanjiTalk jkbd
- Mount'em app mtem
- MountAlias cp jsm1
- QuickTime ext qtim
- Shared Library Mgr aslm
- Snitch ext SNIT
- SoftwareFPU FPUE
- SpigotVDIG ext SPLO
- SpeakAlert cp SPAL
- Speech Manager 1.2 ext ttsc
- Speech Recognition ext srta, srtb
- System (enablers) a/ux, afps, batt, bugx,
- bugy, cptn, ctbv, dplv,
- dply, dude, dudi, fs ,
- gval, hdwr, help, intd,
- kbd , mach, mixd, proc,
- port, qd , qdrw, scri,
- scsi, snhw, vm
- Talk*Control cp ADTK, LNCH
- Thread Manager ext thds
- Wizard INIT ext Mgc!
- WorldScript I ws 1
- unknown icon, ot
- Mark Simmons System (enablers) mach
- Tim Swihart System 7.5 mach
- Ilan Szekely DepthCharge cp *DC*
- PPP mdev PPP
- Jonathan Wilson System (enablers) mach
- ---------------------------------------------------------------------------
-
- ===========================================================================
- Contributions to the non-selector sections
- ===========================================================================
- Person Chapter/Section(s)
- ---------------------------------------------------------------------------
- John Baxter Reports PPC Libraries
- Lawrence D'Oliveiro Kilo-liners GestaltBitTest
- Rick Gansler Gestalt Problems Gestalt Mgr on Sys 7.1.2
- Rene G.A. Ros Abbreviations AWAC, EASC, FMC, JMC, OMC,
- OSS, PCI, RPU, RSB
- Related Software Gestalt Environment 7
- Informant XFCN
- Mac Identifier 1.0
- Tattle-Tech
- Userfunction Gestalt
- Reports QuickTime
- Hans Verbrugge Related Software Get Gestalt
- ---------------------------------------------------------------------------
-
- Changes Overview
- ----------------
- Added selectors
- Apple System : -
- Apple Add. : fsm , srta, srtb, ws 1
- Third Parties : CsWT, FPUE, PPP
- Added unknown
- Apple Softw. : diag, jkbd, lang, mtem, ot
- Third Parties : *DC*, AlaC, Blad, Cafe, FW14, Mgc!, SNIT, SPAL, SPLO
- Changed selectors
- Apple System : a/ux, afps, cfrg, csvr, ctbv, cpnt, dplv, dply, easy,
- fndr, fs , gval, hdwr, help, hscd, icon, intd, kbd ,
- mach, mbox, proc, qd , qdrw, sdev, sdvr, snhw, sysv,
- vm , xlat
- Apple Add. : cmta, cmtc, gfxa, grfx, ttsc
- Third Parties : jsm1, SAVR
- Changed unknown
- Apple Softw. : aslm, batt, bugx, bugy, dude, dudi, fnda, fnd*, fndc,
- port
- Third Parties : FWCP, ReSp
- Previously unknown
- Apple System : scsi
- Apple Add. : -
- Third Parties : Cafe
- Includes updates 2.5.1 up to and including 2.5.10, sent to subscribers of
- the mailing list.
-
- The new Inside Macintosh Operating System Utilities is available (at least
- electronically) and a few pieces of information in the GSL are corrected or
- added. I see no reason to change the basics for the GSL, new selectors and
- attribute bits will keep appearing as the system software develops...
-
- I now merged the unknown 'Apple System Software' and 'Apple Additional
- Software' selectors into one 'Apple Software' section.
- The 'known Apple System Software' section is now divided into four groups.
- The chapter 'Gestalt Problems' is new. It lists known problems with
- Gestalt selectors.
- Reformatted the 'Related Software' chapter and included URL formats for
- FTP and WWW locations. All URL's are also listed in a separate chapter
- called 'URL'. This chapter is the only one ignoring the 80 characters per
- line limit.
-
- Source code has been changed to Pascal except for some function types of
- which no Pascal is available. I chose Pascal to be the standard for this
- list after I received remarks and suggestions about this.
-
- The note about the gestaltKeyboardType selector not being installed on
- the PowerMac 7100/66 was triggered by an Usenet posting by Marc Cooperman.
- His observation was confirmed by me because Gestalt! reports of the
- PM 7100/66 indeed do not list this selector, but I never noticed this when
- I received these reports! Other (Power)Macs don't seem to have this
- problem.
-
- The GSL has been made available by Robert Lentz on a World Wide Web server.
- It now has the latest version and a reference to it is included with the
- 'About This List/Availability' section.
-
- Included information from the:
- - Bookmark CD #18,
- - Bookmark CD #19,
- - WWDC 1994 CD,
- - Developer CD Series August 1994 Tool Chest CD and
- - Developer CD Series September 1994 Reference Library CD.
-
- Roland Mansson provided the information from the latest Gestalt &
- SysEnvirons TechNote (rev. September 1994). The most important news
- is that the machine ID's will be reused...
-
- The following selectors are now installed with software included with
- System 7.5 and are moved from the 'Apple Additional Software' to the 'Apple
- System Software' section:
- ascr, ascv, aucd, cpkr,
- drag, hscd, icmp, iscd,
- kpcd, mtcp, qtim, qtrs,
- scra, sdev, sdvr, snhw,
- teat, thds, ufox, xlat
- And these from the unknown 'Third Party Software' to the unknown 'Apple
- Software' section:
- CDJR, HAM , MClk
-
- Gestalt Selector Codes
- ======================
- The following sections list selector codes of which the meaning is know.
- For easier reading when using a setext viewer the 'Apple System Software'
- section has been divided into four groups grouped on the first character
- of the selectorcode (A-F, G-L, M-R and S-Z).
-
- But first a table with the different software components of the System
- Software with their related selectors. The selectors listed with this
- table are included in the 'Apple System Software' and 'Apple Additional
- Software' sections below it.
-
- ===========================================================================
- System Software components and their selectors
- ===========================================================================
- Manager Determine presence/features by using:
- ---------------------------------------------------------------------------
- A/UX a/ux
- ADB Mgr ???
- Alias Mgr alis
- Apple Remote Access arb , strm
- AppleScript ascr, ascv
- AppleTalk atkv, atlk
- At Ease kids
- CD-ROM Software aucd, hscd, iscd, kpcd, ufox
- CloseView BSDa
- Code Fragment Mgr cfrg
- Collection Mgr cltn
- Color Picker cpkr
- ColorSync Utilities cmta, cmtc
- Communications Toolbox conn, crm , ctbm, ctbu, ctbv, term
- Component Mgr cpnt
- Compression Mgr icmp
- Control Strip sdev, csvr
- Cursor Utilities qd >= gestalt32BitQD
- Data Access Mgr dbac
- Dialog Mgr ditl
- Dictionary Mgr dict
- Disk Initialization Mgr fs
- Display Mgr dplv, dply
- Drag Manager drag
- Easy Access eajt, easy
- Edition Mgr edtn
- Event Mgr evnt
- File System Mgr fs , fsm
- File Transfer Mgr fxfr
- Finder fndr
- FindFolder function fold
- Flagship flag
- Font Mgr font
- Gestalt Mgr gval, tabl, vers, TrapAvailable(_Gestalt)
- Graphics gfxa, grfx
- Help Mgr help
- Icon Utilities icon, TrapAvailable(_IconDispatch)
- LAP Mgr atlk >= 53
- MacTCP mtcp
- Memory Mgr addr, cash, lram, ram , os
- Message Mgr mess
- Mixed Mode Mgr mixd
- Notification Mgr nmgr
- Offscreen Graphic Worlds sysv >= $0700
- PC Exchange pcxg
- Picture Utilities sysv >= $0700
- Popup CDEF pop!
- Power Mgr powr
- PowerTalk dfnd, dsig, malr, ocet, oceu, prpv,
- sdvr, spsl
- PPC Toolbox ppc
- Printing Mgr pmgr
- Process Mgr os
- QuickDraw qd , qdrw
- QuickDraw GX qdgx
- QuickTime qtim, qtrs
- Realtime Mgr rtmr
- Resource Mgr rsrc
- Scrap Mgr scra
- Script Mgr scr#, scri
- SCSI Manager scsi
- Slot Mgr nubs, slot, slt1, sltc
- Sound Mgr snd , snhw
- Speech Mgr ttsc
- Speech Recognition srta, srtb
- Standard File Package stdf
- Standard NBP nlup
- System Toolbox (hardware) cput, fpu , hdwr, intd, kbd , mach,
- mmu , proc, prty, rbv , rom , romv,
- sccr, sccw, ser , sysa, via1, via2
- System Toolbox (software) lmem, micn, misc, os , ostt, osyv,
- sysv, tbtt, xttt
- TextEdit te , teat
- Text Services Mgr tsmv, tmTE, tmTV
- Thread Mgr thds
- Time Mgr tmgr
- Translation Mgr xlat
- Virtual Memory Mgr pgsz, vm
- Workstation Management Agent wma.
- WorldScript ws 1
- XTND Technology XTND
- ---------------------------------------------------------------------------
-
- Apple System Software (A-F)
- ---------------------------
- a/ux (A/UX [2.0?])
- (System [6.0.4])
- gestaltAUXVersion
- Returns the version of A/UX, if it is executing, as BCD?
-
- gestaltAUXVersion = 'a/ux'; {A/UX version, if present}
-
- NOTES:
- If Gestalt doesn't know the answer, test bit 9 of the HWCFgFlag
- system global ($0B22; Integer). if it is, assume you have A/UX 1.0.
-
- This selector also indicates if you're running under MAE on an
- UNIX machine. *AD08
- addr (System [6.0.4])
- gestaltAddressingModeAttr
- Returns information about the current addressing mode.
-
- gestaltAddressingModeAttr = 'addr'; {addressing mode attributes}
- gestalt32BitAddressing = 0; {started up with 32-bit addr.}
- gestalt32BitSysZone = 1; {system heap has 32-bit clean}
- {block headers}
- gestalt32BitCapable = 2; {machine is 32-bit capable}
- alis (System [7.0])
- (Remote Access Aliases ext [1.0?], part of Apple Remote Access)
- gestaltAliasMgrAttr
- Returns information about the Alias Manager.
-
- gestaltAliasMgrAttr = 'alis';{Alias Mgr attributes}
- gestaltAliasMgrPresent = 0;
- gestaltAliasMgrSupportsRemoteAppletalk = 1; {supports Remote}
- {Appletalk} *AD02
- gestaltAlias??? = 2; {since System 7.1 Pro}
-
- NOTE: See 'Reports' chapter (QuickTime section) for more information.
- ascr (AppleScript ext [1.0])
- gestaltAppleScriptAttr *AS08
- Returns information about AppleScript.
-
- gestaltAppleScriptAttr = 'ascr'; {AppleScript attributes}
- gestaltAppleScriptPresent = 0;
- gestaltAppleScriptPowerPCSupport = 1;
- ascv (AppleScript ext [1.0])
- gestaltAppleScriptVersion *AS08
- Returns the version of AppleScript as NumVersion.
-
- gestaltAppleScriptVersion = 'ascv'; {AppleScript version}
-
- NOTE:
- AppleScript 1.1 returns $01100110 which doesn't look like a proper
- version number (version 1.0 returned $01008000). (Rene Ros)
- atkv (System [7.0, AppleTalk 56])
- gestaltATalkVersion *AT02
- Returns AppleTalk version as NumVersion.
-
- This is different from 'atlk' !
-
- gestaltATalkVersion = 'atkv'; {AppleTalk version} *AD01/M01
-
- WARNING:
- This selector returns the majorRev field of the NumVersion record as
- hexadecimal instead of the usual BCD.
-
- NOTE: See 'Reports' chapter (AppleTalk section) for more information.
- atlk (System [6.0.4])
- gestaltAppleTalkVersion
- Returns the version of the .MPP driver as INTEGER.
-
- gestaltAppleTalkVersion = 'atlk'; {AppleTalk version}
- aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *AT03
- gestaltAudioCDAccessVersion?
- Returns Audio CD Access version as BCD.
-
- gestaltAudioCDAccessVersion? = 'aucd'; {Audio CD Access version}
-
- NOTE: The returned version is obtained from 'vers' resource ID# 1.
- BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
- gestaltCloseViewAttr
- Returns information about the CloseView Control Panel.
-
- gestaltCloseViewAttr = 'BSDa'; {CloseView attributes}
- gestaltCloseViewEnabled = 0;
- gestaltCloseViewDisplayMgrFriendly = 1; {Closeview compatible}
- {with Display Manager}
- {(FUTURE)} *AS05
- cash (System [???]) *S03
- gestaltRAMCacheSize
- Returns byte-size of physical RAM allocated to Disk Cache.
- 0 = Disk Cache Off
-
- gestaltRAMCacheSize = 'cash'; {RAM cache size}
-
- NOTE:
- This selector is listed in THINK Reference 1.0 but it is unknown which
- System Software version should install it.
- cfrg (System [7.1.2?])
- gestaltCFMAttr
- Returns information about the Code Fragment Manager machines.
-
- gestaltCFMAttr = 'cfrg'; {Code Fragment Mgr attributes}
- gestaltCFMPresent = 0; {Code Fragment Manager is present}
-
- NOTE:
- Don't rely on the presence of CFM along to check for a PowerMac. The
- CFM will likely appear on 680x0 platforms as well. (Dave Falkenburg)
- conn (System [7.0])
- gestaltConnMgrAttr
- Returns information about the Connection Manager.
-
- gestaltConnMgrAttr = 'conn'; {Conn. Mgr attributes}
- gestaltConnMgrPresent = 0; {Connection Mgr is present}
- gestaltConnMgrCMSearchFix = 1; {fix for CMAddSearch present}
- gestaltConnMgrErrorString = 2; {has CMGetErrorString} *AS02
- gestaltConnMgrMultiAsyncIO = 3; {CMNewsIOPB,CMDisposeIOPB,} *AS02
- {CMPBRead,CMPBWrite,CMPBIOKill}
-
- NOTE:
- With System 6, this Gestalt selector isn't implemented when the
- Communications Toolbox is installed. (Michael Hecht)
- cpkr (Color Picker ext [2.0?])
- gestaltColorPickerMgrAttr
- Returns information about the Color Picker Manager.
-
- gestaltColorPickerMgrAttr = 'cpkr'; {ColorPicker Mgr attributes}
- gestaltColorPickerMgrPresent? = 0?; {ColorPicker Mgr Present}
- (Marco Piovanelli, Lawrence D'Oliveiro)
-
- NOTE:
- Extension version 2.0a4 returns a response ($0x0001) which is
- according to the info above. Version 2.0a5 however returns $0x0100, is
- this an error?
- cpnt (System [7.1])
- (Color Picker Extension ext [2.0])
- (Color Sync ext [1.0.4?])
- (Macintosh Easy Open cp [1.0?])
- (QuickTime ext [1.0])
- (Speech Manager ext [1.1.1, not 1.2?])
- gestaltComponentMgr
- Returns Component Manager version as INTEGER.
-
- gestaltComponentMgr = 'cpnt'; {Component Mgr version} *AS01
- cput (System [7.1.2?]) *AS04/AS05
- gestaltNativeCPUtype
- Returns a value that indicates the type of native processor that is
- currently running.
-
- gestaltNativeCPUtype = 'cput'; {Native CPU type}
-
- {Motorola Architecture}
- gestaltCPU68000 = $0x001;
- gestaltCPU68010 = $0x002;
- gestaltCPU68020 = $0x003;
- gestaltCPU68030 = $0x004;
- gestaltCPU68040 = $0x005;
- {PowerPC Architecture}
- gestaltCPU601 = $0x101;
- gestaltCPU603 = $0x103;
- gestaltCPU604 = $0x104;
- gestaltCPU620? = ???;
-
- NOTE:
- To check whether the native system architecture is a MC680x0 or a
- PowerPC use the gestaltSysArchitecture ('sysa') selector.
-
- The GestaltEqu.h file published with E.T.O. #12 was replaced by the
- one on E.T.O. #13. However there was made a mistake, it lists the 68K
- values in the range 0-4 while it should be 1-5 as listed above.
- This problem is acknowledged by Apple.
- You can fix this problem by using the declarations listed above or by
- using the GestaltEqu.h file from E.T.O. #13 but then test first the
- gestaltSysArchitecture ('sysa') selector and when it reports a 68K
- machine use gestaltProcessorType.
- (Dave Radcliffe, Roland Mansson, Rene Ros)
- crm (System [7.0])
- (Communications Toolbox for System 6)
- gestaltCRMAttr
- Returns information about the Communications Resource Manager.
-
- gestaltCRMAttr = 'crm '; {Comm. Resource Mgr attributes}
- gestaltCRMPresent = 0; {Comm. Resource Mgr present}
- gestaltCRMPersistentFix = 1; {fix for persistent tools} *AS02
- gestaltCRMToolRsrcCalls = 2; {has CRMGetToolResource/} *AS02
- {ReleaseToolResource}
- csvr (Control Strip cp [1.0], part of PowerBook Utilities)
- gestaltControlStripVersion
- Returns the version of Control Strip software that is installed as
- NumVersion.
-
- gestaltControlStripVersion = 'csvr';
-
- WARNING:
- Control Strip 1.0 used to install the 'sdvr' selector (which is used
- by PowerTalk) instead of this selector to return the version. This is
- corrected when the gestaltControlStripAttr ('sdev') selector has bit
- gestaltControlStripVersionFixed set (unknown which version sets it).
- No written documentation found, based on header file. *AS11 (Rene Ros)
-
- NOTE:
- Control Strip displays a row with icons and popup menus to quickly
- change settings on portable macs, i.e. AppleTalk and the sound volume.
- ctbm (System [7.0])
- (Communications Toolbox for System 6)
- gestaltCTBManagersAttr
- Returns information about the Communications Toolbox Managers, it is a
- bitmask of which managers are present.
-
- gestaltCTBManagersAttr = 'ctbm'; {Comm. Mgrs attributes} *S02
- ctbu (System [7.0])
- (Communications Toolbox for System 6)
- gestaltCTBUtilsAttr
- Returns information about the Communications Toolbox Utilities.
-
- gestaltCTBUtilsAttr = 'ctbu'; {Comm. TB Utils attributes} *S02
- gestaltCTBUtilsPresent = 0; *S02
- ctbv (System [7.0])
- (Communications Toolbox for System 6)
- gestaltCTBVersion
- Returns the version number of the Communications Toolbox.
-
- gestaltCTBVersion = 'ctbv'; {Comm. Toolbox version}
-
- NOTE:
- With the Power Macintosh the Communication Toolbox returned a Gestalt
- value indicating version 1.1 while the ROM actually had version 1.0.
- This is fixed by the PowerPC Enabler 1.0.1. and the PowerPC Upgrade
- Card Enabler 1.0.1. because they install CTB 1.1. *AT06
- But this 'ctbv' selector returns version numbers like $0710 not $0011
- so what does Apple mean? (Rene Ros)
- dbac (System [7.0])
- gestaltDBAccessMgrAttr
- Returns information about the Data Access Manager.
-
- gestaltDBAccessMgrAttr = 'dbac'; {Data Access Mgr attributes}
- gestaltDBAccessMgrPresent = 0; {TRUE if Data Access Mgr present}
- dfnd (PowerTalk ext [1.0?], part of System 7.1 Pro)
- gestaltSDPFindVersion
- Returns the SDP Find version as INTEGER.
-
- gestaltSDPFindVersion = 'dfnd'; {SDP Find version}
- dict (System [7.1])
- gestaltDictionaryMgrAttr
- Returns information about the Dictionary Manager.
-
- gestaltDictionaryMgrAttr = 'dict'; {Dictionary Mgr attributes}
- gestaltDictionaryMgrPresent = 0;
- ditl (System [7.0])
- gestaltDITLExtAttr
- Returns information about the Dialog Manager.
-
- gestaltDITLExtAttr = 'ditl'; {Dialog Mgr attributes}
- dplv (System [7.1.1]) *AS05
- gestaltDisplayMgrVers
- Returns Display Manager version as INTEGER?.
-
- gestaltDisplayMgrVers = 'dplv'; {Display Mgr version}
- dply (System [7.1.1]) *AS05
- gestaltDisplayMgrAttr
- Returns information about the Display Manager.
-
- gestaltDisplayMgrAttr = 'dply'; {Display Mgr attributes}
- gestaltDisplayMgrPresent = 0; {True if Display Mgr is present}
- gestalt??? = 1;
- drag (Macintosh Drag and Drop ext [1.0])
- gestaltDragMgrAttr *AD05
- Returns information about the Drag Manager.
-
- gestaltDragMgrAttr = 'drag'; {Drag Manager attributes}
- gestaltDragMgrPresent = 0; {Drag Manager is present}
- gestaltDragMgrFloatingWind = 1; *AS09
- gestaltPPCDragLibPresent = 2; *AS09
- gestalt??? = 31;
- dsig (PowerTalk ext [1.0?], part of System 7.1 Pro)
- gestaltDigitalSignatureVersion
- Returns version of the Digital Signature toolbox as BCD.
-
- gestaltDigitalSignatureVersion = 'dsig'; {Digitial Signature version}
- eajt (Easy Access cp [7.0])
- gestaltEasyAccessJTable
- Returns the base address of the Easy Access jump-trap table.
-
- gestaltEasyAccessJTable = 'eajt'; {Easy Access jump-trap table} *M01
- easy (Easy Access cp [6.0.4?])
- gestaltEasyAccessAttr
- Returns information about the status of Easy Access.
-
- gestaltEasyAccessAttr = 'easy'; {Easy Access attributes}
- gestaltEasyAccessOff = 0; {Easy Access present but off}
- gestaltEasyAccessOn = 1; {Easy Access on}
- gestaltEasyAccessSticky = 2; {Easy Access "Sticky"}
- gestaltEasyAccessLocked = 3; {Easy Access "Locked"}
-
- NOTE:
- The values listed above are not returned with System 7 and later.
- Because of a bug different values are returned. This problem is
- acknowledged by Apple, but it is unclear when it will be fixed. They
- know about it since September 1992... (Rene Ros)
- edtn (System [7.0])
- (Macintosh Easy Open cp [1.0?])
- gestaltEditionMgrAttr
- Returns information about the Edition Manager.
-
- gestaltEditionMgrAttr = 'edtn'; {Edition Mgr attributes}
- gestaltEditionMgrPresent = 0;
- gestaltEditionMgrTranslationAware = 1; *AD03
- evnt (System [7.0]) *AS05
- (Apple Event Manager ext [1.0.1], part of AppleScript Setup)
- gestaltAppleEventsAttr
- Returns information about Apple Events.
-
- gestaltAppleEventsAttr = 'evnt'; {Apple events attributes}
- gestaltAppleEventsPresent = 0; {True if Apple Events present}
- *AS05
- gestaltScriptingSupport = 1;
- gestaltOSLInSystem = 2; {OSL is in system so don`t use}
- {the one linked}
-
- MOTE:
- Oh oh, what to do with these from PowerPC AEObjects header files
- on ETO 14:
- gestaltObjectSupportLibraryInSystem = 1,
- gestaltObjectSupportLibraryPowerPCSupport = 2
- flag (Network Extension ext [System 7.0 *AT02])
- gestaltFlagshipAttr
- Returns information about the Flagship.
-
- gestaltFlagshipAttr = 'flag'; *M01
- gestaltFlagshipPresent = 0; *M01
- gestaltFlagshipRegistered = 1; *M01
- fndr (Finder [7.1.1]) *AS04
- gestaltFinderAttr
- Returns information about the Finder.
-
- gestaltFinderAttr = 'fndr';
- gestaltFinderDropEvent = 0;
- gestaltFinderMagicPlacement = 1;
- gestaltFinderCallsAEProcess = 2;
- gestaltOSLCompliantFinder = 3;
- gestaltFinderSupports4GBVolumes = 4;
- gestaltFinderHandlesCFMFailures = 5;
- gestaltFinderHasClippings = 6; *AD12
- fold (System [7.0])
- gestaltFindFolderAttr
- Returns information about the FindFolder function.
-
- gestaltFindFolderAttr = 'fold'; {FindFolder attributes}
- gestaltFindFolderPresent = 0; {FindFolder function available}
- font (System [7.0])
- (TrueType INIT ext for System 6)
- gestaltFontMgrAttr
- Returns information about the Font Manager.
-
- gestaltFontMgrAttr = 'font'; {Font Mgr attributes}
- gestaltOutlineFonts = 0;
- gestalt??? = 1; {set with System 7.1 & 7.5}
- gestaltDiskCachedFonts? = 2; {Disk Cached Fonts available?}
-
- NOTE:
- Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
- with full subroutine names, there is a subroutine called
- 'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
- of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
- fpu (System [6.0.4])
- gestaltFPUType
- Returns a value that indicates the FPU-type, if any.
-
- gestaltFPUType = 'fpu '; {FPU Type}
- gestaltNoFPU = 0; {no FPU}
- gestalt68881 = 1; {68881 FPU}
- gestalt68882 = 2; {68882 FPU}
- gestalt68040FPU = 3; {built-in 68040 FPU} *S01
-
- NOTE: See also the 'FPUE' entry with the Third Parties section.
- fs (720K Floppy Disk Formatter ext [1.0a3?],
- part of the Hardware System Update [2.0])
- (Apple Share ext [AS 3.0/SYS 7.0])
- (File System Manager ext [1.2])
- (System [7.0])
- gestaltFSAttr
- Returns information about the file system.
-
- gestaltFSAttr = 'fs '; {file-system attributes}
- gestaltFullExtFSDispatching = 0; {exports HFSDispatch traps}
- gestaltHasFSSpecCalls = 1; {supports FSSpec records}
- gestaltHasFileSystemManager = 2; {has the File System Manager}
- *S01
- gestaltFSMDoesDynamicLoad = 3; {FSM supports dynamic loads}
- *AD12
- gestaltFSSupports4GBVols = 4; {FS supports 4 gigabyte volumes}
- *AD14
- gestaltFSSupports2TBVols = 5; {FS supports 2 terabyte volumes}
- *AD14
- gestaltHasExtendedDiskInit = 6; {has extended Disk}
- {Initialization calls} *AD12
-
- NOTES:
- See 'Reports' chapter (QuickTime section) for more information.
- fxfr (System [7.0])
- gestaltFXfrMgrAttr
- Returns information about the File Transfer Manager.
-
- gestaltFXfrMgrAttr = 'fxfr'; {File Transfer Mgr attributes}
- gestaltFXfrMgrPresent = 0; {File Transfer Mgr present}
- gestaltFXfrMgrMultiFile = 1; {supports FTSend and FTReceive}
- *AS02
- gestaltFXfrMgrErrorString = 2; {supports FTGetErrorString}
- *AS02/S02
-
- Apple System Software (G-L)
- ---------------------------
- gval (GestaltValue Glue code)
- (System [8.0?])
- gestaltValueTable?
- Returns a pointer to a table with the selectors and values managed
- by the GestaltValue code. (Marco Piovanelli)
-
- gestaltValueTable? = 'gval';
-
- WARNING:
- Although this information isn't officially confirmed, it is probably
- correct.
-
- NOTE:
- See 'Reports' chapter (GestaltValue section) for more information.
- hdwr (System [6.0.4]) INF
- gestaltHardwareAttr
- Returns information about the hardware configuration of the machine.
-
- gestaltHardwareAttr = 'hdwr'; {hardware attributes}
- gestaltHasVIA1 = 0; {VIA 1}
- gestaltHasVIA2 = 1; {VIA 2}
- gestaltHasRBV = 2; {RBV} *M01
- gestaltHasASC = 3; {ASC}
- gestaltHasSCC = 4; {SCC}
- gestaltHasOSS = 5; {OSS} *M01
- gestaltHasSCSIDMA = 6; {53C80 SCSI DMA} *M01
- gestaltHasSCSI = 7; {SCSI}
- gestaltHasSWIMIOP = 8; {SWIM IOP} *M01
- gestaltHasSCCIOP = 9; {SCC IOP} *M01
- gestaltHasFitch = 10; {Fitch memory Controller} *M02
- gestaltHasIWM = 11; {IWM} *M01
- gestaltHasPWM = 12; {PWM disk speed buffer} *M02
- gestaltHasRAMSndBuff = 13; {RAM-based sound buffer} *M02
- gestaltHasVideoDAConv = 14; {Video D/A Converter} *M02
- gestaltHasPGC = 15; {PGC (parity control)} *M02
- gestaltHasRPU? = 16; {Random Parity Unit}
- gestaltHasOMC? = 17; {Orwell Memory Controller}
- gestaltHasVISARBV? = 18; {VISA Ram Based Video}
- gestaltHasSoftPowerOff = 19; {Software PowerOff (since 7.0?)}*S01
- gestaltHasSonic = 20; {Sonic (built-in ethernet)} *M01
- gestaltHasSCSI961 = 21; {Int. 53C96 SCSI} *AT01
- gestaltHasSCSI962 = 22; {Ext. 53C96 SCSI} *AT01
- gestaltHasDAFBVideo = 23; {DAFB Video} *M01
- gestaltHasUniversalROM = 24; {Universal ROM} *AT04
- gestaltHas??? = 27; {set on PowerMac and C660AV}
- gestaltHas??? = 30; {set on C660AV, DSP?}
-
- gestaltHasDSP? = ??; {Digital Signal Processor}
- gestaltHasEASC? = ??; {Enhanced Apple Sound Chip}
- gestaltHasFWSCSI? = ??; {Fast and Wide SCSI}
- gestaltHasGraphic? = ??; {Apple Graphics coprocessor}
- gestaltHasJaws? = ??; {JMC}
- gestaltHasSCSI2? = ??; {SCSI 2}
-
- NOTES:
- See for additional information the TN "M.OV.GestaltSysenvirons" (OV 16).
-
- On the Mac IIfx and Quadra 900 the gestaltHasSCC bit always returns 0
- because the SCC is isolated by I/O processors. When the Compatibility
- Switch control panel is used the bit is set. *AD12
-
- The old IM VI listed this selector as an environmental selector but
- IM OS Utilities now lists it as an informational selector.
- help (System [7.0])
- gestaltHelpMgrAttr
- Returns information about the Help Manager.
-
- gestaltHelpMgrAttr = 'help'; {Help Mgr attributes}
- gestaltHelpMgrPresent = 0; {Help Mgr present}
- gestaltHelpMgrExtensions = 1; {Help Mgr extensions installed}
- *AS03
- gestaltAppleGuideIsDebug = 30; {Apple Guide is debugging version}
- *AS12
- gestaltAppleGuidePresent = 31; {Apple Guide is available} *AS12
- hscd (High Sierra File Access ext [5.0], part of Apple CD-ROM Software and
- System 7.5)
- (ISO 9660 File Access ext [1.0-4.0], part of Apple CD-ROM Software)
- gestaltHighSierraFAVersion? *AT03
- Returns High Sierra File Access version in BCD.
-
- gestaltHighSierraFAVersion? = 'hscd'; {High Sierra Fileaccess version}
-
- NOTE: The returned version is obtained from 'vers' resource ID# 1.
- icmp (QuickTime ext [1.0])
- gestaltCompressionMgr
- Returns Compression Manager version as Integer.
-
- gestaltCompressionMgr = 'icmp'; {determines if Image Compression}
- {manager is available} *AS01
- icon (System [7.1.2?])
- gestaltIconUtilities
- Returns information about the Icon Utilities routines.
-
- gestaltIconUtilities = 'icon'; {Icon Utils attributes}
- gestaltIconUtilitiesPresent = 0;
-
- NOTE:
- This selector is suppost to be implemented since System 7.1.2. You
- need to determine if the _IconDispatch A-trap ($AB49) is available
- instead. *AD13/AT01
- intd (Powerbook Duo Enabler [1.0])
- (System [7.5])
- (System Enabler 111 [1.0])
- (System Enabler 121 [1.0])
- (System Enabler 131 [1.0])
- (System Enabler 201 [1.0])
- gestaltInternalDiskAttr?
- Returns information about the internal harddisk of portable
- computers?
-
- gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
- gestaltHasInternalDisk? = 0; {TRUE if machine has internal HD}
- gestaltDiskSpinning? = 1; {TRUE if internal HD is spon up}
- gestalt??? = 24; {unknown, set on PB180, PB210,}
- {PB540}
-
- WARNING:
- This information is from a reliable source. However, is it not
- officially confirmed by Apple and there are no constants defined.
-
- NOTE:
- On a PB Duo 210 (PowerBook Duo Enabler) I haven't seen bit 1 set, even
- when the disk is spinning. It is also reported the bit is clear when
- the disk is spinning and set when down (seen on PB Duo 230).
- (David Lewis, Rene Ros)
- iscd (ISO 9660 File Access ext [5.0], part of Apple CD-ROM Software and
- System 7.5)
- gestaltISO9660FAVersion? (not listed)
- Returns ISO 9660 File Access version in BCD?.
-
- gestaltISO9660FAVersion? = 'iscd';
-
- NOTE:
- Versions before 5.0 installed the 'hscd' selector.
- kbd (System [6.0.4])
- gestaltKeyboardType
- Returns a value that indicates the type of keyboard on which the last
- keystroke was seen.
-
- gestaltKeyboardType = 'kbd '; {keyboard type}
- gestaltMacKbd = 1; {Macintosh Keyboard}
- gestaltMacAndPad = 2; {Macintosh Keyboard with Pad}
- gestaltMacPlusKbd = 3; {Macintosh Plus Keyboard}
- gestaltExtADBKbd = 4; {Extended ADB Keyboard}
- gestaltStdADBKbd = 5; {Standard ADB Keyboard}
- gestaltPrtblADBKbd = 6; {Portable ADB Keyboard}
- gestaltPrtblISOKbd = 7; {Portable ISO ADB Keyboard}
- gestaltStdISOADBKbd = 8; {Standard ISO ADB Keyboard}
- gestaltExtISOADBKbd = 9; {Extended ISO ADB Keyboard}
- gestaltADBKbdII = 10; {ADB Keyboard II}
- gestaltADBISOKbdII = 11; {ISO ADB Keyboard II}
- gestaltPwrBookADBKbd = 12; {PowerBook Keyboard} *AT01
- gestaltPwrBookISOADBKbd = 13; {PowerBook Keyboard (ISO)} *AT01
- gestaltAppleAdjustKeypad = 14; {Apple Adjustable Keypad} *AT01
- gestaltAppleAdjustADBKbd = 15; {Apple Adjustable Keyboard}
- {incl. US, ISO and Japanese} *AT01
-
- gestalt??? = ??; {new AppleDesign extended kbd.}
- gestalt??? = 24; {reported to be returned on PB 5xx}
- {other report says these return 11}
-
- ======================================================================
- Combinations of System Global KbdType/ADB Mgr devType and
- gestaltKeyboardType values *AT01
- ======================================================================
- KbdType gestaltKeyboardType Gestalt Name
- (hex.) (decimal)
- ----------------------------------------------------------------------
- $03 1 gestaltMacKbd
- $13 2 gestaltMacAndPad
- $0B 3 gestaltMacPlusKbd
- $02 4 gestaltExtADBKbd
- $01 5 gestaltStdADBKbd
- $06 6 gestaltPrtblADBKbd
- $07 7 gestaltPrtblISOKbd
- $04 8 gestaltStdISOADBKbd
- $05 9 gestaltExtISOADBKbd
- $08 10 gestaltADBKbdII
- $09 11 gestaltADBISOKbdII
- $0C 12 gestaltPwrBookADBKbd
- $0D 13 gestaltPwrBookISOADBKbd
- $0E 14 gestaltAppleAdjustKeypad
- $10 15 gestaltAppleAdjustADBKbd, US
- $11 15 gestaltAppleAdjustADBKbd, ISO
- $12 15 gestaltAppleAdjustADBKbd, Japanese
- ----------------------------------------------------------------------
-
- NOTES:
- The Apple Adjustable Keyboard doesn't has its own Gestalt keyboard
- type defined with the some versions of System Software (7.1?). It
- changes a low memory global but this doesn't change the Gestalt
- response. This problem is corrected by the Hardware System Update 2.0
- or later.
-
- The PowerMac 7100/66 doesn't install this selector for some reason.
- Other Macs with Gestalt version 4 do, so it isn't intentional.
-
- Since this selector returns the type of the keyboard last touched
- and because there can be more than one keyboard, MacDTS considers this
- selector to be obsolete. You should use GetADBInfo instead and check
- the orgADBAddr field for a keyboard (0x02) and the devType field
- contains the keyboard device type. It uses the same values as the
- KbdType low memory variable, see the table above. *AD07/AT01
- kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *AT03
- gestaltApplePhotoAccessVersion?
- Returns Apple Phote Access version in BCD.
-
- gestaltApplePhotoAccessVersion? = 'kpcd';
-
- NOTE:
- The above is what the documentation says. However it seems to return
- always $FFFFFF7 as response.
- lram (System [6.0.4])
- (RAM Doubler [1.0] by Connectix Corporation)
- gestaltLogicalRAMSize
- Returns the amount of logical memory available in bytes.
-
- gestaltLogicalRAMSize = 'lram'; {logical RAM size}
- lmem (System [6.0.4])
- gestaltLowMemorySize
- Returns the amount of the low-memory area in bytes.
-
- gestaltLowMemorySize = 'lmem'; {low-memory area size}
-
- Apple System Software (M-R)
- ---------------------------
- mach (System [6.0.4]) INF
- gestaltMachineType
- Returns one of the following values, indicating the type of
- machine.
-
- RELEASED
- gestaltMachineType = 'mach'; {machine type}
- gestaltClassic = 1; {Macintosh 128K}
- gestaltMacXL = 2; {Macintosh XL}
- gestaltMac512KE = 3; {Macintosh 512KE}
- gestaltMacPlus = 4; {Macintosh Plus}
- gestaltMacSE = 5; {Macintosh SE}
- gestaltMacII = 6; {Macintosh II}
- gestaltMacIIx = 7; {Macintosh IIx}
- gestaltMacIIcx = 8; {Macintosh IIcx}
- gestaltMacSE030 = 9; {Macintosh SE/30}
- gestaltPortable = 10; {Macintosh Portable}
- gestaltMacIIci = 11; {Macintosh IIci}
- gestaltMacIIfx = 13; {Macintosh IIfx}
- gestaltMacClassic = 17; {Macintosh Classic}
- gestaltMacIIsi = 18; {Macintosh IIsi}
- gestaltMacLC = 19; {Macintosh LC}
- gestaltQuadra900 = 20; {Macintosh Quadra 900} *AT01
- gestaltPowerBook170 = 21; {Macintosh PowerBook 170} *AT01
- gestaltQuadra700 = 22; {Macintosh Quadra 700} *AT01
- gestaltClassicII = 23; {Macintosh Classic II} *AT01
- gestaltPowerBook100 = 24; {Macintosh PowerBook 100} *AT01
- gestaltPowerBook140 = 25; {Macintosh PowerBook 140} *AT01
- gestaltQuadra950 = 26; {Macintosh Quadra 950} *AT01
- gestaltMacLCIII = 27; {Macintosh LC III}
- gestaltPowerBook210 = 29; {Macintosh PowerBook 210}
- gestaltMacCentris650 = 30; {Macintosh Centris 650}
- gestaltPowerBook230 = 32; {Macintosh PowerBook 230}
- gestaltPowerBook180 = 33; {Macintosh PowerBook 180}
- gestaltPowerBook160 = 34; {Macintosh PowerBook 160}
- gestaltMacQuadra800 = 35; {Macintosh Quadra 800}
- gestaltMacQuadra650 = 36; {Macintosh Quadra 650} *AT01
- gestaltMacLCII = 37; {Macintosh LC II}
- gestaltPowerBookDuo250 = 38; {Macintosh PowerBook Duo 250} *AT01
- gestaltPowerMac9150 = 39; {Power Macintosh 9150} *AT01
- gestaltMacIIvi = 44; {Macintosh IIvi}
- gestaltPerforma600 = 45; {Macintosh Performa 600}
- gestaltMacIIvx = 48; {Macintosh IIvx}
- gestaltMacColorClassic = 49; {Macintosh Color Classic}
- gestaltPowerBook165c = 50; {Macintosh PowerBook 165c}
- gestaltMacCentris610 = 52; {Macintosh Centris 610}
- gestaltMacQuadra610 = 53; {Macintosh Quadra 610} *AT01
- gestaltPowerBook145 = 54; {Macintosh PowerBook 145 & 145b}
- *AT01
- gestaltMacLC520 = 56; {Macintosh LC 520} *AT01
- gestaltMacCentris660AV = 60; {Macintosh Centris 660AV} *AT01
- gestaltPerforma460 = 62; {Macintosh Performa 460}
- gestaltPowerMac8100_80 = 65; {Power Macintosh 8100/80}
- gestaltPowerBook180c = 71; {Macintosh PowerBook 180c} *AT01
- gestaltPowerBook520_540 = 72; {Macintosh PowerBook 520, 520c,}
- {540 & 540c}
- {use MaximumProcessorSpeed from}
- {Power Mgr. 25 and 33 resp.} *AT01
- gestaltPowerMac6100_60 = 75; {Power Macintosh 6100/60}
- gestaltPowerBookDuo270c = 77; {Macintosh PowerBook Duo 270c}*AT01
- gestaltMacQuadra840AV = 78; {Macintosh Quadra 840AV} *AT01
- gestaltMacLC550 = 80; {Macintosh LC 550} *AT01
- gestaltPowerBook165 = 84; {Macintosh PowerBook 165} *AT01
- gestaltMacTV = 88; {Macintosh TV}
- gestaltMacLC475 = 89; {Macintosh LC 475} *AT01
- gestaltMacLC575 = 92; {Macintosh LC 575} *AT01
- gestaltMacQuadra605 = 94; {Macintosh Quadra 605} *AT01
- gestaltMacLC630 = 98; {Macintosh LC 630, see below} *AT01
- gestaltMacQuadra630 = 98; {Macintosh Quadra 630} *AT01
- {Q630 has MC68040, LC 630 has}
- {MC68LC040 but can upgrade}
- gestaltPowerBookDuo280 = 102; {Macintosh PowerBook Duo 280}
- gestaltPowerBookDuo280c = 103; {Macintosh PowerBook Duo 280c}
- gestaltPowerMac7100_66 = 112; {Power Macintosh 7100/66}
- gestaltPowerBook150 = 115; {Macintosh PowerBook 150}
- gestaltPowerMac700? = 116; {Quadra 700 upgrade card?}
- gestaltPowerMac900? = 117; {Quadra 900 upgrade card?}
- gestaltPowerMac950? = 118; {Quadra 950 upgrade card?}
- gestaltPowerMacC610? = 119; {Centris 610 upgrade card?}
- gestaltPowerMacC650? = 120; {Centris 650 upgrade card?}
- gestaltPowerMacQ610? = 121; {Quadra 610 upgrade card?}
- gestaltPowerMacQ650? = 122; {Quadra 650 upgrade card?}
- gestaltPowerMac800? = 123; {Quadra 800 upgrade card?}
-
- Exceptions with systems prior to System 7.1:
- gestaltMacLCII = 19; {Macintosh LC & LC II}
- {LC has MC68020,LC II has MC68030}
- gestaltPowerBook145 = 25; {Macintosh PowerBook 140 & 145}
- {use GetCPUSpeed from}
- {Power Mgr? 16 and 25 resp.}
-
- Released unknown
- At the moment there are no released Macintosh models of which the
- machine ID is unknown.
-
- Relabeled
- Performa 200 = gestaltClassicII
- Performa 250 = gestaltMacColorClassic
- (sold in Australia & Britain)
- Performa 400 = gestaltMacLCII
- Performa 405 = gestaltMacLCII
- Performa 410 = gestaltMacLCII
- Performa 430 = gestaltMacLCII
- Performa 450 = gestaltMacLCIII
- Performa 466 = gestaltMacLCIII
- Performa 467 = gestaltMacLCIII
- Performa 475 = gestaltMacLC475
- Performa 476 = gestaltMacLC475
- Performa 550 = gestaltMacLC550
- Performa 560MM = gestaltMacLC550
- Performa 575 = gestaltMacLC575
- Performa 577 = gestaltMacLC575
- Performa 578 = gestaltMacLC575
- Performa 600 = gestaltMacIIvx
- Performa 630 = gestaltMac630?
- Performa 635 = gestaltMac630?
- Performa 636 = gestaltMac630?
- Performa 638CDV = gestaltMac630?
- PowerMac 6100/60AV = gestaltPowerMac6100_60
- PowerMac 7100/66AV = gestaltPowerMac7100_66
- PowerMac 8100/80AV = gestaltPowerMac8100_80
- PowerMac WGS 6150 = gestaltPowerMac6100_60 ?
- PowerMac WGS 8150 = gestaltPowerMac8100_80 ?
- PowerMac WGS 9150 = gestaltPowerMac9100_?? ?
- Quadra 660AV = gestaltMacCentris660AV
- Workgroup Server 60 = gestaltMacCentris610
- Workgroup Server 80 = gestaltMacQuadra800
- Workgroup Server 95 = gestaltQuadra950
- Workgroup Server 95+ = gestaltQuadra950
-
- UNRELEASED (RUMOURED / PRERELEASES)
- gestaltPowerMac8100_60? = 64; {Power Macintosh 8100/60}
- gestaltPowerMac8100_100? = 66; {Power Macintosh 8100/100 (Nov.94)}
- gestaltPowerMac6100_66? = 100; {Power Macintosh 6100/66 (Nov.94)}
- gestaltPowerMac6100_80? = 101; {Power Macintosh 6100/80}
- gestaltPowerMac7100_60? = 111; {Power Macintosh 7100/60}
- gestaltPowerMac7100_80? = 113; {Power Macintosh 7100/80 (Nov.94)}
-
- Unreleased unknown
- gestaltPomona??? = ???; {unknown, codename Pomona?}
- Pomona is probably the codename of a new line of home and business
- machines scheduled for early 1995, with three models:
- gestalt??? = ???
- gestalt??? = ???
- gestalt??? = ???
- gestalt??? = 43; {unknown, pre-rel. Tempest/Cyclone}
- gestaltAlchemy? = ???; {unknown, codename Alchemy}
- gestaltCatalyst? = ???; {unknown, codename Catalyst}
- gestaltNitro? = ???; {unknown, codename Nitro}
- gestaltPowerBookDuo2300? = ???; {PowerBook Duo 2300 (or AJ?) with}
- {PPC 603? (May 95)}
- gestaltPowerBookDuo2300c?= ???; {PowerBook Duo color (or AJc?) with
- {PPC 603? (May 95)}
- gestaltPowerBook603? = ???; {Macintosh PowerBook with PPC 603?}
- {June 95}
- gestaltTNTPowerMacsHP? = ???; {TNT PowerMac, High Perf.?}
- gestaltTNTPowerMacsGW? = ???; {TNT PowerMac, Graphics Workstation?}
- gestaltTsunami? = ???; {unknown, codename Tsunami}
-
- Relabeled
- Performa 6110CD = gestaltPowerMac6100_60 ?
- Performa 6112CD = gestaltPowerMac6100_60 ?
- Performa 6115CD = gestaltPowerMac6100_60 ?
- Performa 6117CD = gestaltPowerMac6100_60 ?
- Performa 6118CD = gestaltPowerMac6100_60 ?
-
- NOTES:
- The Power Macintosh computers also set the three low bits of a 32-bit
- register at address $5FFF FFFC to a machine identification code.
-
- ======================================================================
- Power Macintosh register identification codes
- ======================================================================
- Machine Register bits
- ----------------------------------------------------------------------
- Power Macintosh 6100 000
- Power Macintosh 7100 010
- Power Macintosh 8100 011
- ----------------------------------------------------------------------
-
- An upgraded Centris 610 doesn't return 119 (Centris 610 upgrade card?)
- but 75 (PowerMac 6100). (Carl R. Osterwald)
- With an upgraded Quadra 700 the upgrade card value is returned. The
- values for the upgrade cards came from the kMachineNameStrID resource
- from the Power Mac Upgrade Card enabler distributed with System
- Update 3.0 on disk 2. (Rene Ros)
-
- The Performa 600 was originally planned to ship as Macintosh IIvm
- but the name was changed because users thought 'vm' meant 'Virtual
- Memory'. MOST system enablers (i.e. 001, 040, 065 & 201) still
- contain this original name.
-
- The Developer Notes (available from APDA, on ftp.apple.com and on the
- Developer CD-ROM Series) about some PowerBook models (100/140/170)
- provide incorrect information regarding the machine type returned by
- the Gestalt Manager.
-
- You can use the returned value as an index with GetIndString
- to get the machine's name. The STR# resource ID is:
- kMachineNameStrID = -16395;
-
- On Macintosh Performas, the Machine Name STR# resource will always
- return the string "Macintosh" (not "Macintosh Performa 450" or
- "Performa 450"). On all other Macintoshes, the string will return
- the correct name. (Mark Dawson)
- [But] if you do a dirty install [of System 7.5 or later] (right on top
- of an existing, pre-7.5 System), your machine type and icon will be
- preserved. If you do a clean install, you'll get the generic name/icon
- in the Finder's "About This Macintosh..." dialog. (Tim Swihart)
- This can be fixed by using the freeware Mac Identifier extension from
- Flux Software, written by Maurice Volaski. See the 'Related Software'
- chapter for availability. (Rene Ros)
- In the future ID's will be reused and the kMachineNameStrID will
- contain only the text ' Macintosh' (two spaces first) *AT01
- Why, oh why? (Rene Ros)
-
- All system enablers have a STR# resource -16395 (kMachineNameStrID)
- included to replace the one in the System file. In most cases this
- resource lists the same Macintosh names as the original one in
- System 7.1 and adds the names of the machines the enabler is intended
- for. But some only list the machines the enabler is used with.
- Therefore, if you want to display the name of a machine which isn't
- of the current machine type you can't rely on this resource anymore.
- Using the archive mail server you can obtain a ResEdit file with the
- complete machine name string resource. The command to use is
- archive get src/machname-str.sit.hqx
- I will keep it up-to-date along with the changes in this 'mach' entry.
- (Rene Ros)
-
- (Sources of relabled and unreleased machines:
- MacFacts Two by J.D.S. Babcock <jdsb@ee.duke.edu>;
- Duo FAQ by Nicholas C. De Mello <nick@pitt.edu>;
- MacWEEK magazine;
- TidBits magazine by Adam Engst & Co.)
- malr (PowerTalk ext [1.0?], part of System 7.1 Pro)
- gestaltSMPMailerVersion
- Returns the SMP Mailer version as INTEGER.
-
- gestaltSMPMailerVersion = 'malr'; {SMP Mailer version}
- micn (System [6.0.4]) INF
- gestaltMachineIcon
- Returns an icon family resource ID for the current type of
- Macintosh.
-
- gestaltMachineIcon = 'micn'; {machine ICON/cicn res ID}
-
- NOTE:
- The icon resource ID returned is based on the gestaltMachineType
- response which is used as index into a table. This table of
- resource IDs differs for most System Software versions (and
- enablers). If you really want to know the icon resource ID of a
- machine which is not the current machine you have the following
- options:
- - Write a GDEF to replace the 'mach' selector, let this GDEF return
- the original gestaltMachineType unless a certain selector exists.
- Create this selector with the GestaltValue code and make it loop
- from 1 to the number of items in the STR# kMachineNameStrID
- resource, let the custom GDEF return this as the machine type so
- the gestaltMachineIcon selector will use this to look up the icon
- resource ID. Then remove the GestaltValue selector and restore the
- original gestaltMachineType selector.
- - Get the entrypoint of the gestaltMachineIcon GDEF, jump into the
- GDEF a few bytes further (and thus skipping the gestalt call using
- the gestaltMachineType selector), emulate a genuine call to Gestalt
- by setting the A0 (response, the machineType you want) and
- D0 (result) registers correct.
- - Determine the start of the table, which is located in memory before
- the entrypoint of the gestaltMachineIcon GDEF code, and calculate
- the offset to the icon resource ID you need. If you want code which
- does this, you can contact me (Rene Ros) an I will sent you some
- Pascal source code.
- (David Greenspon, Michael Hecht and Rene Ros)
- misc (System [6.0.5])
- gestaltMiscAttr
- Returns information about miscellaneous pieces of software or
- hardware.
-
- gestaltMiscAttr = 'misc'; {miscellaneous attributes}
- gestaltScrollingThrottle = 0;
- gestaltBootGlobals = 1; {Boot Globals} *M02
- gestaltSquareMenuBar = 2;
- mixd (System? [7.1.2?])
- gestaltMixedModeAttr
- Returns information about the Mixed Mode Manager.
-
- gestaltMixedModeAttr = 'mixd'; {Mixed Mode Mgr attributes}
- gestaltPowerPCAware = 0; {True if MMMgr Supports PowerPC}
-
- NOTE:
- IM OS Utilities lists the 'mixd' selector as 'gestaltMixedModeVersion'
- but I don't believe that... (Rene Ros)
- mmu (System [6.0.4])
- gestaltMMUType
- Returns a value that indicates the type of MMU currently installed,
- if any.
-
- gestaltMMUType = 'mmu '; {MMU Type}
- gestaltNoMMU = 0; {no MMU}
- gestaltAMU = 1; {AMU}
- gestalt68851 = 2; {68851 MMU}
- gestalt68030MMU = 3; {built-in 68030 MMU}
- gestalt68040MMU = 4; {68040/68LC040 built-in} *S01
- gestaltEMMU1 = 5; {Emulated MMU type 1, PowerPC MMU} *AS05
- mtcp (MacTCP cp [1.1])
- gestaltMacTCPAttr? *AD01
- Returns the version of MacTCP, if opened, as index-value.
-
- ====================
- MacTCP responses
- ====================
- Version Response
- --------------------
- 1.1 1
- 1.1.1 2
- 2.0.x 3
- --------------------
-
- If MacTCP is not opened a value of 0 is returned.
- No constants are defined with the documentation.
- nlup (System [7.0])
- gestaltStdNBPAttr
- Returns information about the call StandardNBP.
-
- gestaltStdNBPAttr = 'nlup'; {Standard NBP attributes}
- gestaltStdNBPPresent = 0;
- gestalt??? = 1; {unknown, System 7.5}
- nmgr (System [6.0.5])
- gestaltNotificationMgrAttr
- Returns information about the Notification Manager.
-
- gestaltNotificationMgrAttr = 'nmgr'; {Notification Mgr attributes}
- gestaltNotificationPresent = 0;
- nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
- gestaltNuBusSlotCount
- Returns count of NuBus slots.
-
- gestaltNuBusSlotCount = 'nubs'; {NuBus slot count}
- ocet (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
- gestaltOCEToolboxVersion
- Returns the versions of the S&F Server and the OCE Toolbox as BCD.
-
- gestaltOCEToolboxVersion = 'ocet'; {OCE Toolbox version}
- gestaltOCETB = $0100; {current OCE Toolbox version 1.0}
- gestaltSFServer = $0100; {current S&F Server version 1.0}
-
- NOTE:
- The high order word will represent the S&F Server version number, and
- the low order the OCE Toolbox version number both as BCD.
- These will be zero until the component is up and running.
- oceu (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
- gestaltOCEToolboxAttr
- Returns information about the Open Colloboration Environment Toolbox.
-
- gestaltOCEToolboxAttr = 'oceu'; {OCE Toolbox attributes}
- gestaltOCETBPresent = $1; {OCE toolbox is present,}
- {not running}
- gestaltOCETBAvailable = $2; {OCE toolbox is running and}
- {available}
- gestaltOCESFServerAvailable = $4; {S&F Server is running and}
- {available}
-
- NOTE:
- Any (future) remaining OCE attributes may not be established
- correctly until the attribute gestaltOCETBAvailable is set.
- os (System [6.0.4, 7.0 and later])
- (Process Manager INIT ext [???], part of System 7.1 Pro ? and
- System 7.5 ?)
- gestaltOSAttr
- Returns general information about the Operating System.
-
- gestaltOSAttr = 'os '; {O/S attributes}
- gestaltSysZoneGrowable = 0;
- gestaltLaunchCanReturn = 1;
- gestaltLaunchFullFileSpec = 2;
- gestaltLaunchControl = 3;
- gestaltTempMemSupport = 4;
- gestaltRealTempMemory = 5;
- gestaltTempMemTracked = 6;
- gestaltIPCSupport = 7;
- gestaltSysDebuggerSupport = 8;
- gestaltSkiaGlobalsSwitched = 9; *AS05
- gestaltBgndMouseDownSupport = 10; *AS04
- gestalt??? = 11; {on PowerPC, Modern Mem. Mgr?}
- gestalt??? = 13; {unknown, System 7.5}
- gestalt??? = 14; {unknown, System 7.5}
-
- NOTES:
- See the Process Manager chapter in IM Processes for more information
- about the launch control features. And the Memory Manager chapter in
- IM Memory about the memory features.
-
- The header file which lists the gestaltSkiaGlobalsSwitched bit says
- this:
- /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/
-
- "Skia" is the code name for QuickDraw GX (MacsBug uses it for trap
- $A832, which is the main QuickDraw GX trap).
- (Lawrence D'Oliveiro, Anonymous)
- ostt (System [6.0.8?])
- gestaltOSTable
- Returns the base address of the Operating System trap table.
-
- gestaltOSTable = 'ostt'; {O/S trap table base}
- osyv (sysvINIT ext [???] by T. Tanaka, Apple Computer Japan Inc.) INF
- gestaltOldSystemVersion?
- Returns the version of the system file as BCD which was returned
- before sysvINIT replaced the gestalt definition with a corrected one.
-
- gestaltOldSystemVersion? = 'osyv';
-
- NOTE:
- Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
- available on Developer CD-ROM Series) replaces the standard 'sysv'
- Gestalt Definition (GDEF) with a corrected one to return $0x0607 and
- installs the 'osyv' selector which uses the replaced gestalt
- definition. *M03
- pcxg (System? [???]) *AS04/AS05
- gestaltPCXAttr
- Returns information about PC Exchange.
-
- gestaltPCXAttr = 'pcxg'; {PC Exchange attributes}
- gestaltPCXHas8and16BitFAT = 0; {PC Exchange supports both 8 and}
- {16 bit FATs}
- gestaltPCXHasProDOS = 1; {PC Exchange supports ProDOS}
- pgsz (System [6.0.4])
- (RAM Doubler [1.0] by Connectix Corporation)
- gestaltLogicalPageSize
- Returns the logical page size in bytes.
-
- gestaltLogicalPageSize = 'pgsz'; {logical page size}
-
- NOTE:
- The value is unknown on 68000 machines, Gestalt will return an error.
- pop! (System [7.0])
- gestaltPopupAttr
- Returns information about the pop-up control definition.
-
- gestaltPopupAttr = 'pop!'; {pop-up CDEF attributes}
- gestaltPopupPresent = 0; {pop-up CDEF available}
- powr (System [6.0.4])
- gestaltPowerMgrAttr
- Returns information about the Power Manager, if present.
-
- gestaltPowerMgrAttr = 'powr'; {Power Mgr attributes}
- gestaltPMgrExists = 0; {Power Mgr is present}
- gestaltPMgrCPUIdle = 1; {CPU can idle}
- gestaltPMgrSCC = 2; {can stop SCC clock}
- gestaltPMgrSound = 3; {can shut off sound circuits}
- gestaltPMgrDispatchExists = 4; {dispatch routines are present}
- ppc (System [7.0])
- gestaltPPCToolboxAttr
- Returns information about the capabilities of the PPC Toolbox.
-
- gestaltPPCToolboxAttr = 'ppc '; {PPC Toolbox attributes}
- gestaltPPCToolboxPresent = $0x0000; {Requires PPCInit to be}
- {called}
- gestaltPPCSupportsIncoming = $0x0001; {Deny incoming net}
- {requests}
- gestaltPPCSupportsOutGoing = $0x0002; {Deny outgoing net}
- {requests}
- gestaltPPCSupportsRealTime = $0x1000; {Supports real-time}
- {delivery}
- gestaltPPCSupportsStoreAndForward = $0x2000; {Supports store and}
- {forward delivery}
- gestaltPPCSupportsDontCare = $0x4000; {Supports specification}
- {of Don't care}
-
- NOTE:
- The first thing that is confusing is that, unlike other selectors
- returning attributes, the responses are not bit values, but bit masks.
- This means you simply AND the value with the response to test the bit.
- The second thing that is confusing is how to interpret
- gestaltPPCToolboxPresent = $0x0000.
- What this means is that if the PPC toolbox is present, but has not
- been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
- returns $0x0000. In reality, PPCInit gets called by the Process
- Manager before any applications get launched, so no applications will
- actually see this response. (Dave Radcliffe)
- proc (System [6.0.4])
- gestaltProcessorType
- Returns a value that indicates the type of processor that is
- currently running (or emulated on Power Macs or with MAE).
-
- gestaltProcessorType = 'proc'; {processor type}
- gestalt68000 = 1; {MC68000}
- gestalt68010 = 2; {MC68010}
- gestalt68020 = 3; {MC68020}
- gestalt68030 = 4; {MC68030}
- gestalt68040 = 5; {MC68040} *S01
-
- NOTES:
- The 68LC040 responds as type gestalt68040 but doesn't has an FPU. The
- user can swap out the 68LC040 and put in a real 68040 with FPU, so
- just checking the machineType or the processorType isn't enough.
- (Dave Radcliffe)
-
- On a Power Macintosh the Gestalt function returns, although a 68LC040
- is emulated, the value gestalt68020. This return value is intended to
- highlight the two ways in which the 68LC040 Emulator more closely
- resembles a 68020 processor than a 68040 processor. *AD11
- prpv (PowerTalk ext [1.0?], part of System 7.1 Pro)
- gestaltSDPPromptVersion
- Returns the SDP Prompt version as INTEGER.
-
- gestaltSDPPromptVersion = 'prpv'; {SDP Prompt version}
- prty (System [6.0.4])
- gestaltParityAttr
- Returns information about the parity-checking abilities of the
- machine.
-
- gestaltParityAttr = 'prty'; {parity attributes}
- gestaltHasParityCapability = 0;
- gestaltParityEnabled = 1;
- qd (System [6.0.4])
- gestaltQuickDrawVersion
- Returns the version of QuickDraw currently present as 2-byte value.
-
- gestaltQuickDrawVersion = 'qd '; {QuickDraw version}
- gestaltOriginalQD = $000; {obsolete?}
- gestaltOriginalQD1 = $001; {obsolete?}
- gestalt8BitQD = $100;
- gestalt32BitQD = $200;
- gestalt32BitQD11 = $210;
- gestalt32BitQD12 = $220;
- gestalt32BitQD13 = $230;
- gestalt32BitQD135? = $235; {with System 7.1.2, ROM = 3072K?}
-
- ======================================================================
- Possible Combinations of ROM Versions and System Software Versions
- ======================================================================
- ROM Class System Version Gestalt Value
- ----------------------------------------------------------------------
- Black-and-white class < 7.0 gestaltOriginalQD
- (ROM < 256K) >= 7.0 gestaltOriginalQD and
- gestaltSystemVersion >= $0700
-
- Color QD class < 7.0, no INITs gestalt8BitQD
- (ROM = 256K) 6.0.3/6.0.4 and gestalt32BitQD
- 32-Bit QD INIT 1.0
- 6.0.5-6.0.8 and gestalt32BitQD12
- 32-Bit QD INIT 1.2
- >= 7.0 gestalt32BitQD13
-
- ci class 6.0.4 gestalt32BitQD + 1
- (256K < ROM >= 3072K) 6.0.5-6.0.8 gestalt32BitQD12
- >= 7.0 gestalt32BitQD13
- PPC class? 7.1.2? gestalt32BitQD135?
- (ROM = 3072K)
- ----------------------------------------------------------------------
- (Original source: Develop 14, June 1993, p. 56)
-
- NOTE:
- gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
- $0x0201 as response value and doesn't has a defined constant.
- Another QuickDraw version is System 7 with a black-and-white class
- machine.
- qdrw (System [7.0])
- gestaltQuickDrawFeaturesAttr
-
- gestaltQuickDrawFeaturesAttr = 'qdrw'; {QuickDraw attributes} *S01
- gestaltHasColor = 0; *S01
- gestaltHasDeepGWorlds = 1; *S01
- gestaltHasDirectPixMaps = 2; *S01
- gestaltHasGrayishTextOr = 3; *S01
- gestaltSupportsMirroring = 4; *AD12
-
- NOTES:
- There is a bug in the 'qdrw' selector that causes it to report that
- Color QuickDraw is always present, even on machines that don't support
- it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
- Use SysEnvirons instead or test for the QD version ('qd ') being
- 8-bit QD or later.
-
- IM OS Utilities lists this selector as 'gestaltQuickDrawFeatures'.
- qtim (QuickTime ext [1.0])
- gestaltQuickTime
- Returns QuickTime version as NumVersion.
-
- gestaltQuickTime = 'qtim'; {Movie Toolbox Availability}
-
- NOTES:
- The returned version is obtained from 'vers' resource ID# 1.
-
- IM OS Utilities lists this selector as 'gestaltQuickTimeVersion'.
-
- See 'Reports' chapter (QuickTime section) for more information.
- qtrs (QuickTime PowerPlug ext [1.0?])
- gestaltQuickTimeFeatures *AS06
-
- gestaltQuickTimeFeatures = 'qtrs'; {QT Features attributes}
- gestaltPPCQuickTimeLibPresent = 0, {PowerPC QT glue library is}
- {present}
-
- NOTE:
- The gestaltPPCQuickTimeLibPresent bit indicates that the native
- QuickTime interface library is available and can be called by native
- PowerPC applications. (Dave Radcliffe)
- ram (System [6.0.4])
- (RAM Doubler [1.0] by Connectix Corporation)
- gestaltPhysicalRAMSize
- Returns the number of bytes of the physical RAM currently installed.
-
- gestaltPhysicalRAMSize = 'ram '; {physical RAM}
- rbv (System [6.0.4, discontinued?]) *AS04
- gestaltRBVAddr
- Returns the address of the RBV?
-
- gestaltRBVAddr = 'rbv '; {RBV address}
- rom (System [6.0.4]) INF
- gestaltROMSize
- Returns the size of the installed ROM in bytes.
-
- gestaltROMSize = 'rom '; {ROM size}
- romv (System [6.0.4]) INF
- gestaltROMVersion
- Returns the version number of the installed ROM.
-
- gestaltROMVersion = romv'; {ROM version}
- rsrc (System [should work since 7.0?])
- gestaltResourceMgrAttr
- Returns information about the Resource Manager.
-
- gestaltResourceMgrAttr = 'rsrc'; {Resource Mgr attributes}
- gestaltPartialRsrcs = 0;
- gestalt??? = 1; {unknown}
-
- NOTE:
- Under System 7, bit 0 that tells if you have partial resource support
- doesn't work right. The selector is undefined under System 7.0 and
- 7.0.1 even though the partial resource calls are available. This has
- been acknowledged by Apple.
- (Michael Hecht, Quinn)
- rtmr (System? [7.1.1?])
- gestaltRealtimeMgrAttr
- Returns information about the Realtime Manager.
-
- gestaltRealtimeMgrAttr = 'rtmr'; {Realtime Mgr attributes}
- gestaltRealtimeMgrPresent = 0; {Realtime Mgr is present}
-
- NOTE:
- If the RealTime Mgr is present this means the ARTA routines are
- available to determine if and how many DSPs are installed.
- (Zalman Stern)
-
- Apple System Software (S-Z)
- ---------------------------
- sccr (System [6.0.4, discontinued]) *AS04
- gestaltSCCReadAddr
- Returns the address of SCC read ports.
-
- gestaltSCCReadAddr = 'sccr'; {SCC read ports address}
- sccw (System [6.0.4, discontinued]) *AS04
- gestaltSCCWriteAddr
- Returns the address of SCC write ports.
-
- gestaltSCCWriteAddr = 'sccw'; {SCC write ports address}
- scr# (System [6.0.4])
- gestaltScriptCount
- Returns the number of script systems currently active.
-
- gestaltScriptCount = 'scr#'; {number of active scripts}
- scra (Macintosh Easy Open cp [1.0]) *AD03
- gestaltScrapMgrAttr
- Returns information about the Scrap Manager.
-
- gestaltScrapMgrAttr = 'scra'; {Scrap Mgr attributes}
- gestaltScrapMgrTranslationAware = 0;
- gestaltTranslationMgrHintOrder = 1; *AS04
- scri (System [6.0.4])
- gestaltScriptMgrVersion
- Returns the version number of the Script Manager as BCD.
-
- gestaltScriptMgrVersion = 'scri'; {Script Mgr version}
-
- ======================================================================
- Version numbers for the Script Manager
- ======================================================================
- System Version Script Mgr Script Mgr Version
- (older ROMs)+ (newer ROMs) format
- ----------------------------------------------------------------------
- 6.0.3 and earlier <= $20F N.A. binary
- 6.0.4 Roman $211 $215 "
- 6.0.4 non-Roman $212 $216 "
- 6.0.5 $213 $217 (=2.23) "
-
- 6.0.7 $230 $231 BCD
- J-6.0.7.1 $230 $231 "
- 6.0.8 $230 $231 "
- 6.1 non-Roman $240 $241 "
- 7.0 $700 $700 "
- 7.0.1 Roman $701 $701 "
- 7.0.1 non-Roman $701 $701 "
- 7.1 $710 $710 "
- 7.5 $720 $720 "
-
- + Plus,SE,II,IIx,IIcx,SE/30,Classic
- ----------------------------------------------------------------------
- (Original source: Inside Macintosh Text, p. 6-9)
-
- scsi (System [7.1.2?])
- (SCSI Manager ext [4.3])
- gestaltSCSI *AT07
- Returns information about the SCSI Manager.
-
- gestaltSCSI = 'scsi'; {SCSI Manager attributes}
- gestaltAsyncSCSI = 0; {Supports asynchronous SCSI}
- gestaltAsyncSCSIINROM = 1; {Async SCSI is in ROM}
- {(available for booting)}
- gestaltSCSISlotBoot = 2; {ROM supports Slot-style PRAM for}
- {SCSI boots}
- sdev (Control Strip cp [1.0], part of PowerBook Utilities)
- gestaltControlStripAttr
- Returns information about the Control Strip software.
-
- gestaltControlStripAttr = 'sdev';
- gestaltControlStripExists = 0; {TRUE = control strip is}
- {installed}
- gestaltControlStripVersionFixed = 1; {version of Control Strip}
- {installs 'csvr' selector}
- {instead of 'sdvr' ?} *AS11
-
- NOTE:
- Control Strip displays a row with icons and popup menus to quickly
- change settings on portable macs, i.e. AppleTalk and the sound volume.
- sdvr (PowerTalk ext [1.0?], part of System 7.1 Pro)
- gestaltSDPStandardDirectoryVersion
- Returns the SDP Standard Directory version as INTEGER.
-
- gestaltSDPStandardDirectoryVersion = 'sdvr'; {SDP Standard Directory}
- {version}
-
- WARNING:
- The same selector code is used by the Control Strip 1.0 control panel.
- See the gestaltControlStripVersion ('csvr') selector entry above.
- ser (System [6.0.8?])
- gestaltSerialAttr
- Returns information about the serial hardware of the machine.
-
- gestaltSerialAttr = 'ser '; {serial hardware attributes}
- gestaltGPIaToDCDa = 0;
- gestaltGPIaToRTxCa = 1;
- gestaltGPIaToDCDb = 2;
- slot (System [6.0.4, 6.0.5, discontinued])
- gestaltSlotAttr
- Returns information about the Slot Manager.
-
- gestaltSlotAttr = 'slot'; {Slot Mgr attributes}
- gestaltSlotMgrExists = 0;
- gestaltNuBusPresent = 1;
- gestaltSESlotPresent = 2;
- gestaltSE30SlotPresent = 3;
- gestaltPortableSlotPresent = 4;
- slt1 (System [6.0.4, 6.0.5, discontinued])
- gestaltFirstSlotNumber
- Returns first slot number.
-
- gestaltFirstSlotNumber = 'slt1'; {First Slot number}
- sltc (System [6.0.8?])
- gestaltNuBusConnectors
- Returns information about the NuBus slot connector locations. The
- value returned is a bitmap. If bits 9 to E are set, there are six
- slots present with locations 9 to E.
-
- gestaltNuBusConnectors = 'sltc'; {NuBus connector bitmap}
-
- NOTE:
- This selector does not return information about the Macintosh IIsi
- slot.
- snd (System [6.0.4])
- gestaltSoundAttr
- Returns information about the sound capabilities of the machine.
-
- gestaltSoundAttr = 'snd '; {sound attributes}
- gestaltStereoCapability = 0; {can play stereo sounds}
- gestaltStereoMixing = 1; {mixes channels into single}
- {signal}
- gestaltSoundReserved = 2;
- gestaltSoundIOMgrPresent = 3; {new sound input routines avail.}
- gestaltBuiltInSoundInput = 4; {built-in sound input device
- {available}
- gestaltHasSoundInputDevice = 5; {some sound input device avail.}
- gestaltPlayAndRecord = 6; {built-in hardware can play and}
- {record simultaneously}
- *AS03/AS04
- gestalt16BitSoundIO = 7; {sound hardware can play and}
- {record 16-bit samples} *AS04
- gestaltStereoInput = 8; {sound hardware can record}
- {stereo} *AS04
- gestaltLineLevelInput = 9; {sound input port requires}
- {line level} *AS04
- gestaltSndPlayDoubleBuffer = 10; {play from disk available} *AS04
- gestaltMultiChannels = 11; {multiple channel support}
- *AS03/AS04
- gestalt16BitAudioSupport = 12; {16 bit audio data supported}
- *AS04
-
- NOTES:
- Bit 7 through 12 are not defined for versions of the Sound Manager
- prior to version 3.0.
-
- If the gestaltSndPlayDoubleBuffer flag is not set you can check for
- the gestaltHasASC flag with the gestaltHardwareAttr selector. If this
- is true both SndPlayDoubleBuffer and SndStartFilePlay are present.
- *AD06
- snhw (System [7.5])
- (Sound Manager ext [3.0])
- gestaltSoundHardware
- Returns type of hardware used for sound?
-
- gestaltSoundHardware = 'snhw'; {Sound Hardware}
- gestaltASC = 'asc '; {ASC}
- gestaltDSP = 'dsp '; {DSP}
- gestaltClassicSound = 'clas'; {Classic Mac?}
- gestaltAWAC? = 'awac'; {returned on PowerMac}
- gestaltSing? = 'sing'; {returned on PB 540c}
- spsl (PowerTalk ext [1.0?], part of System 7.1 Pro)
- gestaltSMPSPSendLetterVersion
- Returns the SMP SendLetter version as INTEGER.
-
- gestaltSMPSPSendLetterVersion = 'spsl'; {SMP Sendletter version}
- stdf (System [7.0])
- (Macintosh Easy Open cp [1.0?])
- gestaltStandardFileAttr
- Returns information about the Standard File Package.
-
- gestaltStandardFileAttr = 'stdf';
- {Standard File attributes}
- gestaltStandardFile58 = 0;
- {StandardPutFile, StandardGetFile, CustomPutFile}
- {and CustomGetFile are available.}
- gestaltStandardFileTranslationAware = 1; *AD03/AS04
- gestaltStandardFileHasColorIcons = 2; *AD03/AS04/AS05
- gestaltStandardFileUseGenericIcons = 3;
- {force the LDEF to use only the system generic icons} *AT06
- gestaltStandardFileHasDynamicVolumeAllocation = 4;
- {supports more than 20 volumes} *AT06
- sysa (System [7.1.2?]) *AS04
- gestaltSysArchitecture
- Returns one of the following values, indicating the type of
- architecture on which the application is currently running.
-
- gestaltSysArchitecture = 'sysa'; {System Architecture type}
- gestalt68k = 1;
- gestaltPowerPC = 2;
- sysv (System [6.0.4]) INF
- gestaltSystemVersion
- Returns the version number of the currently active System file as BCD.
-
- gestaltSystemVersion = 'sysv'; {System file version}
-
- NOTES:
- Is it correct system 6.0.8 returns $0x0607? Can you determine if it is
- actually 6.0.8 in another way?
-
- In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
- versions return $0606. See the 'osyv' selector.
- System J-6.0.7.1 returns $0609
-
- System 7.1.2 (for Power Macintosh) apparently returns an incorrect
- version number ($0710) when in 68K mode with a PPC Upgrade card.
- (Rick Gansler)
-
- There are some system versions (like International System 6.0.8.1 or
- 7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
- 7.0.1.
- tabl (System [6.0.4])
- gestaltSelectorTable?
- Returns a handle to the Gestalt selector table itself.
-
- gestaltSelectorTable? = 'tabl'; {Gestalt Table address}
-
- WARNING:
- Although this information isn't officially confirmed, it is probably
- correct.
-
- NOTE:
- The Gestalt selector table is kept in a resizable block in the system
- heap. The last item in the table is a dummy entry (INVALID), marked by
- a selector OSType(MaxLongInt). (Marco Piovanelli, he also has some
- snippet Pascal code to list all selectors)
- tbtt (System [6.0.8])
- gestaltToolboxTable
- Returns the base address of the Toolbox trap table.
-
- gestaltToolboxTable = 'tbtt'; {Toolbox trap table base}
- te (System [6.0.5])
- gestaltTextEditVersion
- Returns a value that indicates which version of TextEdit is present.
-
- gestaltTextEditVersion = 'te '; {TextEdit version}
- gestaltTE1 = 1;
- gestaltTE2 = 2;
- gestaltTE3 = 3;
- gestaltTE4 = 4;
- gestaltTE5 = 5;
-
- ======================================================================
- Version numbers for TextEdit
- ======================================================================
- Returned value New Features System software Hardware
- ----------------------------------------------------------------------
- gestaltUndefSelector Multistyled TE before 6.0.4 all
- gestaltTE1 6.0.4 Roman IIci
- gestaltTE2 New width 6.0.4 non-Roman IIci
- measurement hook
- Script Mgr compatible
- gestaltTE3 6.0.4 non-Roman non-IIci
- gestaltTE4 TEFeatureFlag 6.0.5 all
- gestaltTE5 Text width 7.0 all
- measurement hook
- ----------------------------------------------------------------------
- (Source: Inside Macintosh Text, p.2-23)
- teat (Macintosh Drag and Drop ext [1.0])
- gestaltTEAttr *AD05
- Returns information about the functions and capabilities of TextEdit.
-
- gestaltTEAttr = 'teat'; {TextEdit attributes}
- gestaltTEHasGetHiliteRgn = 0; {TEGetHiliteRgn present}
- term (System [7.1])
- gestaltTermMgrAttr
- Returns information about the Terminal Manager.
-
- gestaltTermMgrAttr = 'term'; {Terminal Mgr attributes}
- gestaltTermMgrPresent = 0; {Terminal Mgr is present}
- gestaltTermMgrErrorString = 2; *AS04
- thds (Thread Manager ext [1.1]) *AD04
- (QuickDraw GX ext [1.0?])
- gestaltThreadAttr
- Returns information about the Thread Manager.
-
- gestaltThreadAttr = 'thds'; {Thread Manager attributes}
- gestaltThreadsPresent = 0; {bit true if Threads present}
- gestaltSpecificMatchSupport = 1; {bit true if ‘exact match’}
- {API supported}
- gestaltThreadsLibraryPresent = 2; {bit true if ThreadsLib is}
- {present}
- gestalt??? = 4; {unknown}
-
- NOTE:
- IM OS Utilities lists this selector as 'gestaltThreadMgrAttr'.
- tmgr (System [6.0.4])
- gestaltTimeMgrVersion
- Returns a value that indicates the version of the Time Manager.
-
- gestaltTimeMgrVersion = 'tmgr'; {Time Mgr version}
- gestaltStandardTimeMgr = 1; {Standard Time Mgr}
- gestaltRevisedTimeMgr = 2; {Revised Time Mgr}
- gestaltExtendedTimeMgr = 3; {Extended Time Mgr}
- tsmv (System [7.1])
- gestaltTSMgrVersion *AT05
- Returns Text Services Manager version in BCD.
-
- gestaltTSMgrVersion = 'tsmv'; {Text Services Mgr version}
- ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *AT03
- gestaltForeignFAVersion?
- Returns Foreign File Access version in BCD.
-
- gestaltForeignFAVersion? = 'ufox'; {Foreign File Access version}
-
- NOTE: The returned version is obtained from 'vers' resource ID# 1.
- vers (System [6.0.4])
- gestaltVersion
- Returns the version of Gestalt as INTEGER.
-
- gestaltVersion = 'vers'; {Gestalt version}
-
- NOTE:
- Usually version 1 is present. On machines with ROM version 1917
- (Quadra 840AV, PowerMacs etc.) version 4 is present.
- via1 (System [6.0.4, discontinued])
- gestaltVIA1Addr
- Returns the address of VIA 1.
-
- gestaltVIA1Addr = 'via1'; {VIA 1 address}
- via2 (System [6.0.4, discontinued])
- gestaltVIA2Addr
- Returns the address of VIA 2.
-
- gestaltVIA2Addr = 'via2'; {VIA 2 address}
- vm (System [6.0.4])
- (RAM Doubler [1.0] by Connectix Corporation)
- gestaltVMAttr
- Returns information about virtual memory.
-
- gestaltVMPresent = 0; {set; virtual memory present}
- gestaltVMNotInstalled = 0; {clear; virtual memory not present}
-
- NOTE:
- Future OS may have VM always on but this is not reported by this
- selector. A future selector will tell if the microkernal is running
- and thus if VM is actually used. *AD10
- wma. (System [7.0])
- (Responder ext [2.0?])
- gestaltResponderAttr
- Returns information about the Workstation Management Agent a.k.a.
- Responder.
-
- gestaltResponderAttr = 'wma.'; {Responder attributes}
- gestaltResponderPresent = 0; {Responder is present}
- xlat (Macintosh Easy Open cp [1.0]) *AD03
- gestaltTranslationAttr
- Returns information about the Translation Manager.
-
- gestaltTranslationAttr = 'xlat'; {Translation Mgr attrib.}
- gestaltTranslationMgrExists = 0; {TM present}
- gestaltTranslationMgrHintOrder = 1; {TRUE if hint order}
- {reversal bug is fixed}
- gestaltTranslationPPCAvail = 2; {PPC Lib. available}
- gestaltTranslationGetPathAPIAvail = 3; {GetFileTranslationPath}
- {and GetPathTranslationDialog available}
- gestalt??? = 4; {by MEO 1.1}
- xttt (System [6.0.8])
- gestaltExtToolboxTable
- Returns the base address of the Extended Toolbox trap table.
-
- gestaltExtToolboxTable = 'xttt'; {Extended Toolbox trap table}
-
- Apple Additional Software
- -------------------------
- arb (Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
- gestaltArbitorAttr *AD02
- Returns information about the Serial Port Arbitration.
-
- gestaltArbitorAttr = 'arb '; {Serial Port Arbitration}
- {attributes}
- gestaltSerialArbitrationExists = 0; {Serial Port Arbitration}
- {installed}
- cltn (QuickDraw GX [1.0])
- gestaltCollectionMgrVersion
- Returns the version of the Collection Manager as NumVersion.
-
- gestaltCollectionMgrVersion = 'cltn'; {Collection Mgr version}
-
- NOTE:
- The Collection Manager is a set of routines for maintaining tagged
- collections of data; GX uses it to support the "tags" that you can
- attach to GX objects, for holding special data, including
- user-defined data. (Lawrence D'Oliveiro)
- cmta (ColorSync ext [1.0.4?]
- gestaltColorMatchingAttr *AD09
- Returns information about the ColorSync Utilities?
-
- gestaltColorMatchingAttr = 'cmta'; {Color Matching Attributes}
- gestaltHighLevelMatching = 0; {BeginMatching &}
- {DrawMatchedPicture present}
- gestaltColorMatchingLibLoaded = 1; {Native PowerPC shared}
- {library is loaded. a.k.a.}
- {gestaltSharedLibLoaded?}
- cmtc (ColorSync ext [1.0?])
- gestaltColorMatchingVersion
- Returns the version of the Color Matching software as BCD.
-
- gestaltColorMatchingVersion = 'cmtc'; {Color Matching version}
- gestaltColorSync10 = $0100; *AD09
- gestaltColorSync11 = $0110; *AD09
- gestaltColorSync104 = $0104; *AD09
- gestaltColorSync105 = $0105; *AD09
-
- NOTE: From version 1.0.4 up the correct version is returned.
- fsm (File System Manager ext [1.2?])
- gestaltFSMVersion *AD14
- Returns File System Manager version as BCD.
-
- gestaltFSMVersion = 'fsm ';
- gfxa (QuickDraw GX [1.0])
- gestaltGraphicsAttr
- Returns information about the Graphics.
-
- gestaltGraphicsAttr = 'gfxa'; {graphics attributes bits }
- gestaltGraphicsIsDebugging = $0001;
- gestaltGraphicsIsLoaded = $0002;
- gestaltGraphicsIsPowerPC = $0004;
-
- NOTE: Not bit values but bit masks? Use AND?
- grfx (QuickDraw GX ext [1.0])
- gestaltGraphicsVersion
- Returns the version of the Graphics as INTEGER.
-
- gestaltGraphicsVersion = 'grfx'; {Gestalt version selector}
- gestaltCurrentGraphicsVersion = $00010000; {supposed value returned}
- kids (At Ease [1.0])
- kAtEaseGestalt
- Returns a handle to a structure holding information about At Ease.
-
- The following code was published by Apple *AT06:
-
- #define kAtEaseGestalt 'kids'
- typedef struct {
- short giVersion; /* structure version */
- short giIsActive; /* true if at ease is currently running */
- short giAutoCreateAlias; /* if true then auto create alias */
- short giRequestFloppy; /* if true then request floppy on new
- saves */
- short giStacksAreApps; /* if true then HyperCard stacks are shown
- with applications */
- FSSpec giItemsLocation; /* location of the At Ease Items folder */
- } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
- mess (QuickDraw GX [1.0])
- gestaltMessageMgrVersion
- Returns the version of the Message Manager as NumVersion.
-
- gestaltMessageMgrVersion = 'mess'; {Message Mgr version}
-
- NOTE:
- The Message Manager is an implementation of object-oriented-style
- message passing within an inheritance hierarchy, that can be used from
- non-OO languages.
- It is used by the GX printing system, to allow the customization of
- printing behaviour by letting applications (and developers of printing
- extensions) intercept messages sent to the printer driver.
- (Lawrence D'Oliveiro)
- pmgr (QuickDraw GX [1.0])
- gestaltPrintingMgrVersion
- Returns the version of the QuickDraw GX Printing Manager as
- NumVersion.
-
- gestaltPrintingMgrVersion = 'pmgr'; {Printing Mgr version}
- qdgx (QuickDraw GX [1.0])
- gestaltGXVersion
- Returns the version of QuickDraw GX as NumVersion.
-
- gestaltGXVersion = 'qdgx'; {QuickDraw GX version}
- srta (Speech Recognition ext [1.2.1?])
- gestaltSpeechRecognitionAttr
- Returns information about the Speech Recognition software.
-
- gestaltSpeechRecognitionAttr = 'srta';
- gestaltDesktopSpeechRecognition = 0; {Recognition using mic.}
- gestaltTelephoneSpeechRecognition = 1; {FUTURE}
-
- NOTE:
- The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
- selector is installed on all machines and the response value will
- indicate the speech recognition is available. (Rene Ros)
- srtb (Speech Recognition ext [1.2.1?])
- gestaltSpeechRecognitionVersion
- Returns the version of the Speech Recognition software as BCD.
-
- gestaltSpeechRecognitionVersion = 'srtb';
-
- NOTE:
- The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
- selector is installed on all machines and its presence will indicate
- the speech recognition is available. (Rene Ros)
- strm (Remote Access Aliases [1.0], part of Apple Remote Access)
- gestaltRemoteAccessAttr *AD02
-
- gestaltRemoteAccessAttr = 'strm'; {Remote Access attributes}
- gestaltRemoteAccessExists = 0; {RA Connection Interface is}
- {available}
- gestalt??? = 1; {installed since ARA 2.0?}
- gestalt??? = 3; {installed since ARA 2.0?}
- tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
- gestaltTSMTEAttr *AS07
- Returns information about the Text Services Manager for TextEdit.
-
- gestaltTSMTEAttr = 'tmTE'; {TSM for TE attributes}
- gestaltTSMTEPresent = 0; {TSM for TE is present}
- tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
- gestaltTSMTEVersion *AS07
- Returns the version of the Text Services Manager for TextEdit as BCD.
-
- gestaltTSMTEVersion = 'tmTV'; {TSM for TE version}
- gestaltTSMTE1 = $0100; {TSM for TE version 1.0}
- ttsc (Text-To-Speech Manager ext [1.0?])
- gestaltSpeechAttr
- Returns information about the Speech Manager.
-
- gestaltSpeechAttr = 'ttsc'; {Text-To-Speech Manager attrib.}
- gestaltSpeechMgrPresent = 0; {bit true if Speech Mgr present}
- gestaltSpeechHasPPCGlue = 1; {Speech Mgr has native PPC glue}
- ws 1 (WorldScript I ext [7.1?])
- gestaltWorldScriptIVersion?
- Returns version of WorldScript I software as BCD.
-
- gestaltWorldScriptIVersion? = 'ws 1';
- XTND (??? [???])
- gestaltXTNDAttr *AS11
- Returns information about XTND Manager?
-
- gestaltXTNDAttr = 'XTND';
- gestaltPPCXTNDPresent = 1;
-
- NOTE:
- Is used in some code to check if XTND engine is present. However it is
- unknown when it is installed, so supposedly it is meant for future
- use. Like a built-in XTND engine in the System Software? When the
- selector is installed all operations are dispatched through trap
- _XTNDMgr ($ABF4) otherwise the library provides the code.
- (Marco Piovanelli)
-
- Third Parties Software
- ----------------------
- !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
- gestaltSymbiontsTable
- Returns a pointer to a structure containing the size of the System
- Heap before and after loading the INITs.
-
- gestaltSymbiontsTable = '!SYM'; {Symbionts address}
- ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
- gestaltAfterDarkFolder *M05
- Returns a pointer to a procedure that gives the DirID and vRefNum of
- the 'After Dark Files' folder.
-
- gestaltAfterDarkFolder = 'ADfd';
-
- NOTE:
- See for more information the AfterDark Gestalt header file (See
- chapter 'Related Software' for availability)
- ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
- gestaltAfterDarkAttr *M05
- Returns a longword bitmask containing public information about
- After Dark.
-
- gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
- eSystemIQActive = 0; {SystemIQx activity monitor active}
- eSoundActive = 1; {AD has allocated a sound channel}
- eADAcquiringPassword = 2; {After Dark has its password dialog up}
-
- NOTE:
- See for more information the AfterDark Gestalt header file (See
- chapter 'Related Software' for availability)
- ApoL (Apollo ext [1.0] by Jeremy Roussak)
- gestaltApolloTable
- Returns a handle to an instance of a structure.
-
- gestaltApolloTable = 'ApoL'; {Apollo address}
-
- NOTE:
- See for more information the Programmers' Information chapter in the
- Apollo 1.0 documentation. (Jeremy Roussak)
- ASHI (Arashi app [???] by Juri Munkki)
- ???
- Returns information about the presence of Arashi by returning one (1)
- if loaded, and zero (0) when removed.
- AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
- gestaltAutoBuildVersion
- Returns the version of AutoBuild as NumVersion.
-
- gestaltAutoBuildVersion = 'AuBu'; {AutoBuild version}
-
- NOTE: The returned version is obtained from 'vers' resource ID# 1.
- BBlk (Basic Black cp [1.3], by Mason L. Bliss)
- gestaltBasicBlackAddr
- Returns the address of Basic Black's patch globals.
-
- gestaltBasicBlackAddr = 'BBlk'; {Basic Black address}
-
- NOTE:
- See documentation included with Basic Black for more information.
- BIFF (QM Biff ext [1.0] by Patrick C. Beard)
- ???
- Determines if there is mail (QuickMail). The response long word is 1
- if you have mail, and 0 if you don't.
- Cafe (Coffee Break appl [1.0] by Thomas Reed)
- gestaltCoffeeBreakAddr?
- Returns a pointer to a code resource owned by Coffee Break.
- Details are private.
-
- gestaltCoffeeBreakAddr? = 'Cafe';
- CKI3 (AETracker cp [3.0] by C.K. Haun)
- gestaltAETrackerAddr
- This selector returns a pointer to the external interface routine for
- AETracker, details of which are in the AETracker interface guide.
- (C.K. Haun)
-
- gestaltAETrackerAddr = 'CKI3'; {AETracker address}
- CsWT (Desktop Strip cp [1.0b1] by Sigurdur Asgeirsson)
- gestaltDesktopStripAttr?
- Returns information about the installed Desktop Strip software.
-
- gestaltDesktopStripAttr? = 'CsWT';
- gestaltDesktopStripPresent? = 0;
- dBgP (DBugR cp [1.0?] by Alessandro Levi Montalcini)
- ???
- Returns a pointer to a data structure with the preferences,
- identical to the data in the PREF resource, for which a template
- is included.
-
- NOTE: The d is actually the option-d character (ASCII $B6).
- EagL (Eagle ext [1.4], part of Apollo 1.1 by Jeremy Roussak)
- gestaltEagleAttr?
- Returns information about the state of the Eagle background
- application.
-
- gestaltEagleAttr? = 'EagL'; {Eagle attributes}
- gestaltEaglePPCReady? = 0; {Eagle can accept next PPC}
- FPUE (SoftwareFPU cp [3.0?] by John Neil & Associates) *M06
- gestaltSoftwareFPUAddr?
- Detects presence of SoftwareFPU.
- If the result of the Gestalt call is noErr, then SoftwareFPU is
- installed, and the 68881 FPU reported by the gestaltFPUType selector
- is an emulated FPU. The value returned in the response is private and
- should be ignored.
-
- gestaltSoftwareFPUAddr? = 'FPUE';
- FrcP (Decor cp [1.0] by Francois Pottier)
- gestaltDecorAddr
- Returns a pointer to a structure which can be read or changed, and
- enables programmers to change the picture on the desktop.
-
- gestaltDecorAddr = 'FrcP'; {Decor address}
-
- NOTES:
- See for more information on how to use this structure the
- documentation included with Decor 1.0 or later.
-
- The c is actually the option-c character (ASCII $8D).
- Gast (Gestalt! appl [2.9.2] by Roland Mansson)
- gestaltGestaltVersion
- Returns the version of the application as NumVersion.
- GestaltValue is removed when application quits. Just for fun.
- (Roland Mansson)
-
- gestaltGestaltVersion = 'Gast'; {Gestalt! version}
-
- NOTE: The a is actually the option-u/a character (ASCII $8A).
- GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
- ???
- Snippet code, see documentation. (See chapter 'Related Software'
- for availability).
- GWat (GestaltWatch ext [1.0] by Scot Bronson)
- ???
- Returns pointer to structure where collected information is stored.
-
- NOTE: In development, not yet available.
- IF 8 (Speak Note cp [???] by Glenn R. Howes)
- gestaltSpeechNoteAttr?
- Returns information about the installed copy of Speak Note.
-
- gestaltSpeechNoteAttr? = 'IF 8';
- gestaltSpeechNoteAvailable = 0;
- Lnch (Network Time cp [2.0] by Pete Resnick)
- (First Launch Gestalt INIT code resource, by Pete Resnick)
- gestaltFirstLaunchAttr
- Returns info on whether the _Launch trap has been called by the
- System.
-
- gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
- gestaltFirstLaunchDone = 0; {_Launch called, INIT time over}
-
- NOTE:
- Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
- _Launch trap has been called since startup of the machine. All other
- bits are reserved and currently 0. Even if not installed at INIT time,
- Network Time will install the Gestalt selector if it is not already
- there when the control panel is opened and automatically set
- bit 0 to 1.
- 68000 assembler source code is available for the INIT that installs
- the selector, and INIT resource -4048 from Network Time may be
- stolen (and renumbered as desired) and used in any INIT file as
- desired. (Pete Resnick)
- NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
- gestaltNovellIPXVersion
- Returns the version of MacIPX as NumVersion.
-
- gestaltNovellIPXVersion = 'NIPX'; {MacIPX version}
-
- NOTE:
- If the selector returns an error (i.e. no such selector?) then MacIPX
- is not installed. If the selector returns 0 then MacIPX is installed
- but the driver is not open. Any other value is the version.
- (Duane Murphy)
- NMBT (Attention cp [0.6] by Marco Piovanelli)
- gestaltAttentionAddr
- The response value returned is a pointer to a read-only parameter
- block in the system heap.
-
- gestaltAttentionAddr = 'NMBT'; {Attention address}
-
- NOTE: See for more detailed information the included ReadMe file.
- NTim (Network Time cp [2.0] by Pete Resnick)
- ???
- Returns information private to Network Time.
- PPP (PPP mdev [???], part of MacPPP by Merit Network, Inc. and the
- University of Michigan)
- ???
- Returns the address of the Lap globals as documented in the header
- file 'ppp.h.source'. It's an absolutely enormous struct that contains
- among other things function pointers to let you open and close MacPPP.
- (Richard Buckle)
-
- ??? = 'PPP ';
-
- NOTE:
- Source code of MacPPP is available at:
- ftp://merit.edu/pub/ppp/mac/
- PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
- gestaltPwrSwitcherTable
- Returns a pointer to a private data structure (undocumented).
-
- gestaltPwrSwitcherTable = 'PWRS'; {Power Switcher address}
- SAVC (AfterDark cp [2.0] by Berkeley Systems, Inc.)
- (Basic Black cp [1.3.3] by Mason L. Bliss)
- (DarkSide of the Macintosh [4.0] by Tom Dowdy)
- gestaltScreenSaverControl *M05
- Returns a pointer to a procedure of type
-
- typedef pascal OSErr (*SaverControlProcPtr) (SaverCommand command);
-
- which allows controlling the screen saver.
-
- gestaltScreenSaverControl = 'SAVC';
-
- NOTE:
- See for more information the AfterDark Gestalt header file (See
- chapter 'Related Software' for availability)
- SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
- (Arashi app [???] by Juri Munkki)
- (Basic Black cp [1.3.3] by Mason L. Bliss)
- (Coffee Break app [1.0] by Thomas Reed)
- (DarkSide of the Macintosh [4.0] by Tom Dowdy)
- gestaltScreenSaverAttr *M05
- Returns information about the current screen saver. Defined if a
- screen saver is installed.
-
- gestaltScreenSaverAttr = 'SAVR'; {Screen saver attributes}
- gestaltSaverTurnedOn = 0; {saver enabled/disabled}
- gestaltSaverAsleep = 1; {saver currently asleep}
- gestaltSaverDemoMode = 2; {saver sleeping in demo mode}
- gestaltSaverPasswordMode = 3; {saver sleeping in password-}
- {protected mode}
- gestaltAppDrawingDisabled = 4; {QD drawing disallowed between}
- {module animation frames}
-
- NOTE:
- See for more information the AfterDark Gestalt header file (See
- chapter 'Related Software' for availability)
- SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
- kSDDelayCreator
- Returns a pointer to a data structure described in the documentation
- included with Shutdown Delay.
-
- kSDDelayCreator = 'SDdD';
-
- NOTE: The d is actually the option-shift v character (ASCII $D7).
- SHCM (Shared Code Manager ext [1.0] by Eric Schlegel of Microsoft Corp.)
- gestalt???
- Returns a pointer to an undocumented entrypoint into the Shared Code
- Manager.
-
- gestalt??? = 'SHCM';
-
- NOTE:
- The Shared Code Manager (1991) is a simple DLL mechanism that is
- currently used by Microsoft's Mac OLE 1.0 (Object Linking & Embedding)
- and the applications that use OLE 1.0. (Eric Schlegel)
- SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
- gestaltStuffItSpaceSaverAddr
- Returns the address of the SpaceSaver "command module" which allows
- developers to access all the functions of SpaceSaver.
- (Leonard Rosenthol)
-
- gestaltStuffItSpaceSaverAddr = 'SLip';
- TExT (FileTyper Menu cp [none], part of FileTyper by Daniel Azuma)
- gestaltTyperMenuAttr
- Returns information about the FileTyper Menu's operation.
-
- gestaltTyperMenuAttr = 'TExT';
- gestalt??? = 0; {TRUE = NO item added to Finder's}
- {File menu}
-
- WARNING:
- No currently released version of FileTyper Menu (up to and including
- 4.1.1) installs this selector, but future versions may. Check for the
- existence of this selector first, if you use it. (Daniel Azuma)
- TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
- ???
- The value returned is a pointer to a Monitor information block. *M04
- (Scott Bronson)
- Typ4 (FileTyper Menu cp [4.1.1], part of FileTyper by Daniel Azuma)
- gestaltTyperMenuPriv
- Returns private information, the existence of this selector indicates
- FileTyper Menu is installed.
-
- gestaltTyperMenuPriv = 'Typ4';
-
- NOTE:
- Third parties can determine if FileTyper Menu is installed by
- checking for the existence of this selector. However, the actual value
- returned is private and subject to change. (Daniel Azuma)
- UMAM (Authentication Manager cp [1.0.7] by Robert John Churchill of the
- University of Michigan)
- gestaltAuthManVersion
- Returns the version of the Authentication Manager as Double BCD.
-
- gestaltAuthManVersion = 'UMAM';
- YeHa (SpeedyFinder7 cp [1.5.4?] by Victor Tan)
- ???
- Returns a pointer to a private data structure (undocumented).
-
- NOTE:
- The structure to which the Gestalt selector refers changes almost
- invariably from version to version of SF7. Should someone work out
- parts of the structure of the selector keep in mind that it will
- almost certainly change in the next minor release and definitely with
- the next major release. (Victor Tan)
-
- Unknown Gestalt Selector Codes
- ==============================
- The following sections list selector codes of which the meaning is unknown.
-
- Apple Software
- --------------
- OSType(7) (System [6.0.4])
- Returns LongInt('carl') and a result code of noErr.
- OSType(13) (System [6.0.4])
- Returns LongInt('bbmc') and a result code of noErr.
- 3615 (Express Modem cp [1.0], part of Express Modem Software)
- a pc (??? [???], part of System on Quadra 610-DOS?)
- admn (AppleShare Admin appl [3.0])
- gestaltASAdminAttr?
-
- gestaltASAdminAttr? = 'admn';
- gestaltASAdminPresent? = 0;
- AgVU (Agent VU ext [2.0?], part of Virtual User)
- afps (AppleShare File Server? app? [4.0?])
- (System [7.5])
- Bits 0 and 16 set.
- aint (System? [7.1.1?])
- NOTE: Returns 2 on a C660AV and Q840AV.
- apml (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
- Bit 0 and 31 set.
- aslm (Shared Library Manager ext [1.1.1?])
- (System? [???])
- gestaltSharedLibraryMgr?
- Returns the version of the Shared Library Manager as BCD in high word
- and information about the SLM in low word?
-
- gestaltSharedLibraryMgr? = 'aslm';
- gestaltSharedLibrary??? = 0;
- gestaltSharedLibrary??? = 1;
-
- NOTE:
- This selector appears to be both an attribute and version selector:
- - the version is BCD in the high word (confirmed in version 1.1.2
- and 2.0 doesn't contradict this)
- - the attributes are in the low order word (but I don't know the
- meanings)
- (John Mancino)
- asps (AppleShare Print Server appl [3.0])
- gestaltASPrintServerAttr?
-
- gestaltASPrintServerAttr? = 'asps';
- gestaltASPrintServerPresent? = 0;
- AtEa (At Ease Startup [2.0?], part of At Ease for Workgroups)
- bART (MacCheck app [1.0])
- BaRT (MacCheck app [1.0])
- bast (Performa cp [1.1], part of System 7.1P)
- batt (Powerbook Duo Enabler [1.0])
- (System [7.5])
- (System Enabler 111 [1.0])
- (System Enabler 121 [1.0])
- (System Enabler 131 [1.0])
- (System Enabler 201 [1.0]))
- Returns information about the PowerBook battery?
-
- The debugger name for the routine which returns the response for this
- selector is called 'GETTIMELEFT'. But in what units? And what time?
- I've only seen the value 0, 5 or 6 returned. The GDEF calls the Power
- Manager (_PMgrOp [$A085 with D0=$00]) to get the info but I can't find
- which function. (Rene Ros)
- brcn (Screen? cp [1.0?] on Color Classic)
- brcN (Energy Saver cp [1.0?], part of Monitor Energy Saver)
- bugx (System [7.5])
- (System Update ext [3.0])
-
- NOTE:
- The System Update reserves the 'bugx;, ‘bugy’ and ‘bugz’ gestalt
- selectors to indicate which fixes are installed on a given machine.
- These are for Apple internal use only, and developers should not rely
- on these. There is no guarantee that they will be supported in future
- versions of Macintosh system software. *AT06
- bugy (32-bit System Enabler [1.0])
- (Hardware System Update ext [1.0])
- (Network Launch Fix ext [1.0])
- (Sound Manager ext [3.0])
- (System? [7.1?])
- (System enabler 065)
- gestaltEnablerAttr?
-
- gestaltEnablerAttr? = 'bugy'; ?
- gestaltEnablerEgretDispatchPatch? = 0; {these correct the system}?
- gestaltEnablerEgretTimePatch? = 1; { clock and modem perf.}?
- gestalt??? = 2; {unknown, Hardware Upd.}
- gestaltEnablerEgretTickHandlerPatch? = 3; { see bit 0 & 1}?
- gestalt??? = 4; {unknown, Hardware Upd.}
- gestaltEnablerSCSIPatch? = 5; {floppy drive fixed}?
- gestalt??? = 6; {unknown, Hardware Upd.}
- gestaltEnabler32bit? = 7; {32-bit enabler present}?
- gestalt??? = 9; {unknown, Sound Mgr 3.0}
- gestalt??? = 11; {unknown, Hardware Upd.}
- gestalt??? = 12; {unknown, Hardware Upd.}
- gestalt??? = 13; {unknown, Hardware Upd.}
- gestalt??? = 14; {unknown, Hardware Upd.}
- gestalt??? = 15; {unknown, Hardware Upd.}
- gestalt??? = 16; {unknown, Hardware Upd.}
- gestaltEnablerKeyboardPatch? = 17; {corrects Adjustable Kbd
- gestaltKeyboardType response?}
- gestalt??? = 18; {unknown, Hardware Upd.}
- gestalt??? = 19; {unknown, ???}
- gestalt??? = 24; {unknown, ???}
- gestalt??? = 25; {unknown, ???}
- gestalt??? = 26; {unknown, ???}
- gestaltNetworkLaunchFix? = 27; {fix problem with appl. on}
- {server launch with 68040}
- gestalt??? = 28; {unknown, ???}
- gestalt??? = 31; {unknown, ???}
-
- WARNING:
- These are ALL guesses. Well not entirely, I used the ResEdit CODE
- Editor to peek into the 32-bit System Enabler, Hardware System update
- and other software. Please check if I'am right. You should be able to
- find some of the answers in the INIT resource of the Hardware Update
- and the names of the PTCH resources in version 1.0 were also useful...
- The System Enablers (for new Macintosh models) don't seem to install
- or change any Gestalt selector to indicate their presence.
-
- NOTE:
- The System Update reserves the 'bugx;, ‘bugy’ and ‘bugz’ gestalt
- selectors to indicate which fixes are installed on a given machine.
- These are for Apple internal use only, and developers should not rely
- on these. There is no guarantee that they will be supported in future
- versions of Macintosh system software. *AT06
- bugz (System [7.0]/Tune-up ext)
-
- NOTE:
- The System Update reserves the 'bugx;, ‘bugy’ and ‘bugz’ gestalt
- selectors to indicate which fixes are installed on a given machine.
- These are for Apple internal use only, and developers should not rely
- on these. There is no guarantee that they will be supported in future
- versions of Macintosh system software. *AT06
- cate (Catalogs Extension? ext [???], part of System 7.1 Pro ?)
- Bit 0 set.
- CDJR (Apple Menu Options cp [1.0], part of System 7.5)
- (ExtendedAppleMenu [???] by Chris Derossi)
- cfmg (System [7.1.2 on PowerMac])
- clbv (PowerTalk ext [1.0?], part of System 7.1 Pro and 7.5)
- Bit 0 set.
- comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
-
- NOTES:
- The name "QuickDraw Font Plus" is translated from Japanese and may be
- translated differently by Apple Computer, Inc.
-
- I think 'comp' stands for 'composite', as the INIT contains patches to
- the Font Manager needed to handle 'composite font suitcases'.
- (Marco Piovanelli)
- ctxm (???)
- detc (???)
- diag (Automated Diagnostics ext [1.0], part of Apple Personal
- Diagnostics 1.0)
- doub (WorldScript II ext [???], part of KanjiTalk7)
- gestaltDoubleByteScriptVersion?
- Returns the version of WorldScript II as BCD?
-
- gestaltDoubleByteScriptVersion? = 'doub';
-
- NOTE:
- This selector seems to be installed by WorldScript II (the
- System 7.1 ext needed to handle double-byte scripts like Japanese,
- Korean and Traditional Chinese). Known returned value is $0x0710.
- (Marco Piovanelli)
- dude (Powerbook Duo Enabler [1.0])
- (System [7.5])
- (System Enabler 111 [1.0])
- (System Enabler 121 [1.0])
- (System Enabler 131 [1.0])
- (System Enabler 201 [1.0]))
- dudi (Powerbook Duo Enabler [1.0])
- (System [7.5])
- (System Enabler 111 [1.0])
- (System Enabler 121 [1.0])
- (System Enabler 131 [1.0])
- (System Enabler 201 [1.0]))
- fdbk (Speech Setup cp? [???], part of PlainTalk)
- fdrs (Finder [7.1.1b1?], part of AOCE Developer's Kit)
- Installed by Finder extension?
- fnda (Finder [7.1.1])
- NOTE: The a is actually the option-a character (ASCII $8C).
- fnd& (Finder?, System? [7.1.2 on PowerMac?])
- NOTE: The & is actually the option-shift-a character (ASCII $E5).
- fnd* (Finder [7.1.1])
- NOTE: The * is actually the shift-6 character (ASCII $F6).
- fnd? (Finder [7.1.1b1?], part of AOCE Developer's Kit)
- Installed by Finder extension?
- fnd (Finder [7.1.1b1?], part of AOCE Developer's Kit)
- Installed by Finder extension?
- fndc (Finder [7.1.1])
- fndn (Finder?, System? [7.1.2 on PowerMac?])
- NOTE: The n is actually an option-n, n (ASCII $96).
- FNDR (Finder [7.1.1b1?], part of AOCE Developer's Kit)
- Installed by Finder extension?
- futr (ThreadsINIT ext [2.0?], part of Threads Package)
- gFax (Fax Extension ext [1.1?], part of Express Modem Software)
- gntz (System [7.1.2 on PowerMac])
- gpad (System? [7.5?])
- gprf (System? [7.5?])
- HAM (System? [7.5?])
- harp (PowerBook cp? [7.2?])
- hcsl (Finder [7.1.1b1?], part of AOCE Developer's Kit)
- heap (System [7.1.2 on PowerMac])
- Bits 1 and 5 set.
- hgfd (AppleShare File Server appl [3.0])
- gestaltASFileServerAttr?
-
- gestaltASFileServerAttr? = 'hgfd';
- gestaltASFileServerPresent? = 0;
- HrIt (HearIt cp [1.0])
- iadj (System? [7.1.2?] with PowerTalk?)
- (Display Enabler ext, Icon relocation INIT ID#3 [1.0])
- idsp (???)
- immg (??? [???] on PowerBook 520/540?)
- intD (??? [???])
-
- NOTE:
- This is a mystery selector. It isn't installed by any software, as
- far as I know, but the Finder 7.1 checks for this selector in certain
- situations. (Marco Piovanelli)
- jkbd (??? (Japanese!) ext [1.0], part of KanjiTalk)
- mbox (Mailbox Extension? ext [???], part of System 7.1 Pro ?)
- gestaltMailboxVersion?
- Returns version of Mailbox software as INTEGER.
-
- gestaltMailboxVersion? = 'mbox';
- MClk (Date & Time cp [7.5], part of System 7.5)
- (SuperClock! cp [4.0] by Steve Christensen)
- mjik (MenuMagic ext [1.0], part of System 7.1 Pro and 7.5)
- mtem (Mount'em app [1.0b1] by Mike Wise and Chris Cotton of Apple Computer)
- Only installed if Mount'em driver is loaded. Looks like the highword
- contains the version (of driver or application?) as BCD, while the
- low-word is a mystery.
- mtv! (TV Setup cp [1.0], part of System for Macintosh TV?)
-
- NOTE:
- Not seen installed, disassembled control panel, meaning unknown.
- It's probably an address. (Rene Ros)
- lang (??? [???])
- gestalt???Attr
- Returns information about the Language Manager?
-
- gestalt???Attr = 'lang';
- gestalt??? = 1;
-
- NOTE:
- This is another mystery selector. It isn't installed by any software,
- as far as I know, but the Standard File Package, installed by System
- Update 3.0, checks for this selector and tests bit 1. If it is
- present then it invokes a routine dispatched through trap $AA6D.
- (Marco Piovanelli)
- ldap (???)
- lstk (Speech Setup cp? [???], part of PlainTalk)
- ltma (Link Tool Manager ext [2.0?], part of Apple Remote Access 2.0)
- gestaltLinkToolVersion?
- Returns the version of the Link Tool Manager as NumVersion?
-
- gestaltLinkToolVersion? = 'ltma';
-
- NOTE:
- The only value I've seen returned was $02002008, which would mean
- '2.0d8' which was not correct since the 'vers' recource said '2.0f0'.
- The value is hardcoded in the .LTM Driver resource. (Rene Ros)
- mash (System [7.1P?]/At Ease [1.0?])
-
- NOTE:
- The Starter cp (part of System 7.1P) and Launcher cp (part of
- System 7.5) both contain a 'mash' resource and includes a template for
- it. Can this be the same data-structure? (Rene Ros)
- mfdr (At Ease [1.0])
- octb (??? [???] on PowerBook 520/540?)
- ot (??? [???])
- gestaltOpenTransportAttr?
- Returns information about the Open Transport software?
-
- gestaltOpenTransportAttr? = 'ot ';
- gestaltOpenTransportPresent? = 0;
- PhoN (PowerBook Setup cp [7.3.1?], PhoneINIT INIT resource)
- port (Powerbook Duo Enabler [1.0])
- (System [7.5])
- (System Enabler 111 [1.0])
- (System Enabler 121 [1.0])
- (System Enabler 131 [1.0])
- (System Enabler 201 [1.0])
- gestaltPortAttr?
- Returns information about the ports?
-
- gestaltPortAttr? = 'port';
- gestaltHasInternalModem? = 0?;
- gestaltHasExternalPrinter? = 1?;
- gestaltHasExternalModem? = 2?;
-
- NOTE:
- System Enabler 201 and PowerBook Duo enabler contain an GDEF resource
- which indicates bits 0, 1 and 2 can be set. (Rene Ros)
- ppad (Performa cp [1.1], part of System 7.1P)
- pprf (Performa cp [1.1], part of System 7.1P)
- ptlk (Speech Setup cp? [???], part of PlainTalk)
- pxtn (System? [???])
- Remt (AutoRemounter cp [???])
- reno (Apple Help? ext? [???], part of System 7.5 ?)
- gestaltAppleGuideAttr?
- serh (System? [7.1.2?])
- gestaltSerialHardware?
- Returns type of hardware used for serial I/O?
-
- gestaltSerialHardware? = 'serh'; {Serial Hardware}
- gestaltClassicSer? = 'Clas'; {returned on PPC 8100/80 (GeoPort?)}
- shal (System [7.1?])
-
- NOTE: Returns 2 on PowerMac and 1 on Centris 660AV
- slnk (MNPLinkTool? [1.0], part of Apple Remote Access)
- sndx (Sound Manager ext [3.0]?)
- gestaltSoundMgrAttr?
-
- gestaltSoundMgrAttr? = 'sndx'?;
- gestaltSoundMgrPresent? = 0?
- thng (ThreadsINIT ext [2.0?], part of Threads Package)
- thrd (ThreadsINIT ext [2.0?], part of Threads Package)
- tpad (System? [7.5?] on PowerBook 520/540?)
- udsk (System [7.1.2 on PowerMac])
- udsv (System [7.1.2 on PowerMac])
- vdrc (System? [7.5?])
- vmbs (System [7.0])
- (RAM Doubler [1.0] by Connectix Corporation)
- gestaltVMBackingStoreRef? (not listed)
- Returns the file reference number of the Virtual Memory storage file
- if VM is present.
-
- gestaltVMBackingStoreRef? = 'vmbs';
- vmcl (System, VM on [7.0])
- vmem (RAM Doubler [1.0] by Connectix Corporation)
- gestaltVMExtensionMgr? (addition)
- Returns type of software used to extend the Virtual Memory Mgr?
-
- gestaltVMExtensionMgr? = 'vmem';
- gestaltRAMDoubler? = 'RaM2';
-
- NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
-
- Third Parties Software
- ----------------------
- *DC* (DepthCharge cp [???] by Maf Vosburgh)
- AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
- ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
- ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
-
- NOTE:
- Not installed by AfterDark but the GDEF indicates it is able to return
- a response.
- ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
-
- NOTE:
- Not installed by AfterDark but the GDEF indicates it is able to return
- a response.
- ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
- ADTK (Talk*Control cp [???] by 2Way Computing, Inc.)
- AlaC (A La Carte cp [1.1?] by Denali Software Development)
- AP00..AP06
- (RapidLock cp or RapidTrak cp [1.1], part of RapidTrak software by
- Insignia Solutions Inc.)
- It seems these selectors are installed for each harddisk connected to
- your Macintosh. The last two bytes of the selector are the SCSI ID.
- Although the third byte can mean something else, because perhaps
- 'AP17' (listed below) is probably also installed by
- RapidLock/RapidTrack.
- AP17 (???)
- ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
- ASTN (Asante EN/SC ext [???] by Asante Technologies, Inc.)
- aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
- AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
- A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
- Blad (Blood cp [1.0.1?] by Alessandro Levi Montalcini)
- NOTES:
- The B is actually the option-s character (ASCII $A7).
- The d is actually the option-d character (ASCII $B6).
- bMRN (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
- by NOW Software)
- CHSR (ChooserUser [1.2?] by Maurice Volaski)
- CiCN (Color ICON Mania cp [1.0] by Yosuke Suzuki)
- DanS (PowerClick cp [1.0] by Daniel A. Segel)
- DCDt (NoDesktopCleanup cp [1.0?] by Alessandro Levi Montalcini)
- DCKc (Keys! cp [1.0] by Stefan Kurth)
-
- NOTE: The lowercase c is actually the control-q (Command key sign)
- character (ASCII $11).
- DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
- DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
- DFlh (DiskFlash cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
- Dpth (DepthMaster cp [1.0] by Victor Tan)
- DWG! (Volume Menu cp [1.0] by David Gladstone, Chris Burns, Julian Harris)
- EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
- ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
- ESOC (Serial of Champions ext [???] by Mike Throckmorton)
- Extn (NOW Startup Manager cp [4.0?], part of NOW Utilities 4.0.1p package
- by NOW Software)
- Fie (Icon7 ext [???] by Inline Designs)
- gestaltIcon7?
- fPth (FinderPaths cp? [???])
-
- NOTE: The f is actually the option-f character (ASCII $C4).
- fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
- package)
- FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
- FW14 (FileWave Administrator ext [2.0?], part of FileWave 2.0
- by Wave Research)
- FWCP (File Tracker Controls cp [1.0] by Mark Aiken)
- fWmM (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
- by NOW Software)
- GrEG (Greg's Buttons ext [3.1.4?] by Greg Landweber)
- GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
- gV00 (PowerPort cp? [???])
- gV01 (PowerPort cp? [???])
- gV02 (PowerPort cp? [???])
- gV03 (PowerPort cp? [???])
- gV04 (PowerPort cp? [???])
- He20 (Helium cp [1.0?] by Robert L. Mathews)
- HEID (Incognito cp [1.0?] by Manuel Veloso)
- HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
- GDEF always returns value 1.
- HtLk (Reference Link ext [1.0] by James W. Walker)
- iHnd (Invisible Hand cp [1.0] by Carl Mauer)
-
- NOTE:
- Because this cp patches the _Random trap you can use this selector to
- determine its presence and refuse to continue.
- Intj (Interjection ext [???])
- JAiN (Rival cp by Inline Designs)
- gestaltRival
-
- NOTE: The i is actually the option-u/i character (ASCII $95).
- jsm1 (???)
- JXNM (NowMenus cp [4.0?], part of NOW Utilities 4.0.1p package
- by NOW Software)
- KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
- KBCM (???)
- LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
- LNCH (Talk*Control cp [???] by 2Way Computing, Inc.)
- LxRZ (Retro.SCSI? ext [2.0?], part of Retrospect by Dantz Development
- Corporation)
- (Remote? cp [2.0?], part of Retrospect by Dantz Development
- Corporation)
- Mgc! (Wizard INIT ext [1.0], part of Disk Wizard by Francois Pottier)
- MJC& (AutoMenus II cp [???] by Michael Conrad)
- MV10 (TearOFF cp [???] by Bad Boys' Software)
- nOAg (??? cp [1.2?], part of netOctopus by Pole Position)
- nOAv (??? cp [1.2?], part of netOctopus by Pole Position)
- Returns version as NumVersion?
- NGst (NokNok cp [1.0?])
- NkNk (NokNok cp [1.0?])
- NowT (NOW Toolbox ext [4.0?], part of NOW Utilities 4.0.1p package,
- by NOW Software)
- PBUf (???)
- PBUt (???)
- PRT+ (PrintAid [0.9?] by James W. Walker)
- PtrP (PrintPatrol [1.0] by Randy DeRuiter and John Champion)
- QRef (QuickRef ext? [1.0] by Scott Bronson)
- ReSp (File Tracker Controls cp [1.0] by Mark Aiken)
- RQDC (DropCheck cp [???] by Ronald B. Queloz)
- SCTR (FaxMonitor ext [1.6?], part of FAXcilitate by PSI)
- SDIT (???)
- SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
- ALSoft, Inc.)
- SFun (SF Windows [1.0] by Damon Cokenias)
- SFwd (Open-wide cp [3.0?] by James W. Walker)
- SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
- SNIT (Snitch ext [1.0] by Mitch Jones)
- SPAL (SpeakAlert cp [1.0.5?] by Brian Stern)
- SPLO (SpigotVDIG ext [1.0] by SuperMac Technology)
- ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
- STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
- TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
- Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
- UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by
- Keisuke Hara)
- See also FtCg selector.
- View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
- gestaltViewerEngine
- vmFn (RAM Doubler [1.0] by Connectix Corporation)
- Seems to return a memory address, perhaps to a function to control
- Virtual Memory?
-
- NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
- WARE (???)
- WREO (Replace Existing Options cp [???] by Jonathon Summers)
-
- NOTE: The W is actually the option-w character (ASCII $B7).
- Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
-
- NOTE: The W is actually the option-w character (ASCII $B7).
- *Men (OtherMenu ext [1.0] by James W. Walker)
-
- Gestalt Problems
- ================
- This section lists all known problems related to the Gestalt selectors.
- Each problem is also listed with each of the selectors in the chapters
- above. The table below provides an overview.
-
- ===========================================================================
- Overview Gestalt selector problems
- ===========================================================================
- Software Code Problem Status
- ---------------------------------------------------------------------------
- Apple Photo Access ext kpcd always returns $FFFFFFF7 R unclear
- AppleScript ext ascv different formats version R problem?
- AppleTalk atkv majorRev of version in hex problem?
- Color Picker ext cpkr incorrect return values? problem?
- Easy Access cp easy incorrect return values C unknown
- Icon Utilities code icon not installed C SYS 712?
- Link Tool Mgr 2.0 ext ltma incorrect version value? R problem?
- PowerTalk ext/Control Strip 1.0 cp
- sdvr same selector for both? C CS 1.0?>
- Shared Library Mgr ext aslm incorrect version value? problem?
- Speech Recognition ext srta, srtb
- installed even if no SR possible R unclear
- System (enablers) *ALL* Gestalt Mgr with System 7.1.2 C SYS 7.5>
- alis QT part. installs but no selector C ok
- conn not installed with System 6 problem?
- cput incorrect return values 68K C unclear
- ctbv returned 1.1 while ROM has 1.0 C SU 3.0 >
- fs QT part. installs but no selector C ok
- intd bit 1 (disk spon up) not set R problem?
- kbd Adjustable Keyboard incorrect C SU 2.0 >
- not installed on PM7100 (7.1.2) unclear
- qdrw HasColor set on B/W machines (7.0)C unknown
- rsrc PartialRsrcs not set with 7.0 C 7.1 >
- sltc No information on IIsi slot C never?
- sysv KanjiTalk 6.0.7 incorrect return value
- C sysvINIT
- System 6.0.8 returns $0607 never
- System 7.1.2/PPC card returns 0710 unclear
- System/Apple Event ext evnt constants overlap R unclear
- ---------------------------------------------------------------------------
- R = unconfirmed but known to be reported to Apple
- C = confirmed
- unclear = unclear if it will ever be fixed
- unknown = unknown when it will be fixed
-
- Gestalt Manager Calls
- =====================
- All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
- in this chapter.
-
- Gestalt Manager Routines
- ------------------------
- The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
- listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
- documented.
-
- FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
- Available since System 6.0.4.
- Trap Macro
- _Gestalt ($A1AD)
- Registers on entry D0: selector code
- Registers on exit A0: response
- D0: result code
- Result codes
- noErr 0 No error
- gestaltUnknownErr -5550 Could not obtain the response
- gestaltUndefSelectorErr -5551 Undefined selector
- FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
- Available since System 6.0.4.
- Trap Macro
- _NewGestalt ($A3AD)
- Registers on entry A0: address of new selector function
- D0: selector code
- Registers on exit D0: result code
- Result codes
- noErr 0 No error
- memFullErr -108 Ran out of memory
- gestaltDupSelectorErr -5552 Selector already exists
- gestaltLocationErr -5553 Function not in system heap
- FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
- VAR oldGestaltFunction: ProcPtr): OSErr;
- Available since System 6.0.4.
- Trap Macro
- _ReplaceGestalt ($A5AD)
- Registers on entry A0: address of new selector function
- D0: selector code
- Registers on exit A0: address of old selector function
- D0: result code
- Result codes
- noErr 0 No error
- gestaltUndefSelectorErr -5551 Undefined selector
- gestaltLocationErr -5553 Function not in system heap
- #define CallSelectorFunctionProc(userRoutine, selector, response) \
- (*userRoutine)(selector, response)
- Trap Macro
- ??? (???)
- Registers on entry ???
- Registers on exit ???
- Result codes
- noErr 0 No error
- ??? ??? ???
- #define NewSelectorFunctionProc(userRoutine) \
- (SelectorFunctionUPP)(userRoutine)
- Trap Macro
- ??? (???)
- Registers on entry ???
- Registers on exit ???
- Result codes
- noErr 0 No error
- ??? ??? ???
-
- Undocumented Gestalt Manager Routines
- -------------------------------------
- FUNCTION? GestaltDispatch? (???):OSErr;?
- Trap Macro
- _GestaltDispatch ($A0AD)
- Registers on entry ???
- Registers on exit ???
- Result codes
- noErr 0 No error
- ???
-
- NOTE:
- Found in the MPW, THINK C and THINK Pascal Traps Interface file
- on 'Bookmark CD 14'.
- Available since System 6.0.4 but code will always return error -50
- (paramErr). (Lawrence D'Oliveiro, Rene Ros)
- FUNCTION? GetGestaltProcPtr? (selector?: OSType;
- var selectorfunction: ProcPtr): OSErr;?
- Trap Macro
- _GetGestaltProcPtr ($A7AD)
- Registers on entry D0: selector code?
- Registers on exit ??: address of selector function
- Result codes
- noErr 0 No error
- ???
-
- NOTE:
- Found in the MPW Traps Interface file on 'Bookmark CD 14'.
- Available since System 6.0.4 but code will always return error -50
- (paramErr). (Lawrence D'Oliveiro, Rene Ros)
- I (Rene Ros) have written Pascal code to do what this system call
- probably is planned to do in the future.
-
- Gestalt Value Routines
- ----------------------
- Please note the GestaltValue routines are currently invoked through a
- library, and only in the future will GestaltValue be moved into the OS
- proper. The GestaltValue functions are stack based and don't use registers.
- The GestaltValue library first checks to see if trap $ABF1 is implemented
- (not with any system software available). If trap $ABF1 is implemented, all
- calls to the library are routed to this trap, otherwise the library uses
- embedded code.
-
- WARNING:
- The GestaltValue library distributed originally checks for the wrong trap
- (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
- trap is installed by the Thread Manager extension. See the Related Software
- chapter for availability (also on mail archive server).
- (Most info about the GestaltValue functions was provided by
- Marco Piovanelli and Dave Radcliffe).
-
- FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
- Available as glue code.
- Trap Macro Selector
- _GestaltValueDispatch ($ABF1) $0401
- Result codes
- noErr 0 No error
- unimpErr -4 Unimplemented core routine
- memFullErr -108 Ran out of memory
- (and other memory errors)
- gestaltDupSelectorErr -5552 Selector already exists
- FUNCTION ReplaceGestaltValue (selector: OSType;
- replacementValue: LongInt): OSErr;
- Available as glue code.
- Trap Macro Selector
- _GestaltValueDispatch ($ABF1) $0402
- Result codes
- noErr 0 No error
- unimpErr -4 Unimplemented core routine
- memFullErr -108 Ran out of memory
- (and other memory errors)
- gestaltUndefSelectorErr -5551 Undefined selector
- FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
- Available as glue code.
- Trap Macro Selector
- _GestaltValueDispatch ($ABF1) $0203
- Result codes
- noErr 0 No error
- unimpErr -4 Unimplemented core routine
- gestaltUndefSelectorErr -5551 Undefined selector
-
- History
- =======
- This chapter contains a short overview about the history of the Gestalt
- Manager and its predecessors.
-
- Environs
- --------
- PROCEDURE Environs (VAR rom,machine: INTEGER);
-
- With the introduction of the Macintosh the system routine 'Environs' was
- introduced. It allowed to obtain two pieces of information: the ROM version
- and a value to indicate the machinetype. This "ROM oriented" way soon
- appeared to be insufficient when the range of Macintosh hardware and
- software became more diverse.
-
- SysEnvirons
- -----------
- FUNCTION SysEnvirons (versionRequested: INTEGER;
- VAR theWorld: SysEnvRec): OSErr;
-
- With System 4.1 a new system routine was introduced which allowed the
- programmer to obtain more information about the current configuration.
- Upon completion SysEnvirons filled the SysEnvRec with the information.
- This was however an "all-or-nothing" situation, it was not possible to
- obtain just one piece of information.
- To allow for larger system environment records with more information one
- needed to specify the version number of the system environment record. The
- last version, introduced with System 6, was version 2 which had nine fields.
-
- Gestalt
- -------
- FUNCTION Gestalt (code: LONGINT; VAR feature: LONGINT): OSErr;
-
- You may wonder how one can be so stupid to list the Gestalt routine wrong...
- However, this is how the Gestalt routine was presented to developers in
- the Preliminairy Developer Note regarding System 7 in 1989.
- There was no selector of type OSType as we known it today. Instead a list
- of numerical constants was used, like:
-
- zVersion = $1; { Gestalt Version }
- zMachType = $100; { machine type }
- zSystemVers = $101; { system file version }
-
- and nine others.
- But the principle used with todays Gestalt routine was there: request one
- specific piece of information and you'll get it. Nothing more and nothing
- less. Back then it wasn't the Gestalt Manager since there was only one
- routine. Both the NewGestalt and the ReplaceGestalt did not exist.
- In June 1992 (released in February 1993?) three new functions were added
- to the Gestalt Manager: NewGestaltValue, ReplaceGestaltValue and
- DeleteGestaltValue
-
- Reports
- =======
- When someone reports some findings involving several selectors and/or a
- report is too long to include with the selector entry above, that report
- is listed here. They should be as short as possible with the maximum
- amount of information.
-
- AppleShare File & Print Server selector codes
- ---------------------------------------------
- The selectors are defined when the application has run. If it is still
- running (or wasn't properly quit) the response is one. When the application
- has properly quit the response is zero.
- admn AppleShare Admin
- asps AppleShare Print Server
- hgfd AppleShare File Server
- (these three are undocumented)
-
- AppleTalk
- ---------
- With the release of the System 7 Tuner product, AppleTalk will not be
- loaded at startup, if prior to the previous shutdown AppleTalk was turned
- off in the Chooser. Under this circumstance, the 'atkv' selector is not
- available. If the 'atkv' selector is not available under System 7, this is
- an indicator that AppleTalk cannot be turned on without doing so in the
- Chooser and rebooting the system. *AT02
-
- Copy protection using Gestalt
- -----------------------------
- In Develop 17 Brigham Stevens suggests to use Gestalt and FindFolder as a
- way to implement copy protection in the most compatible way possible.
- By determining several characteristics at installation from the Gestalt Mgr
- and the DirID of the System Folder with FindFolder you can check for this
- info later. When is has changed you can then ask for the serial number
- or a password again. (Rene Ros)
-
- Environs & SysEnvirons
- ----------------------
- Using Macsbug it is very easy to determine that the SysEnvirons function
- uses the Gestalt Manager to fill the fields of the system environment
- record. So, when you install your own gestalt definitions by using the
- ReplaceGestalt function this will also change the information returned
- by SysEnvirons.
- The older Environs function doesn't use the Gestalt Mgr and the code
- seems to look only at two values in ROM. (Rene Ros)
-
- Executor Mac-emulator
- ---------------------
- Executor is a Macintosh Emulator for DOS machines, published by
- Abacus Research and Development, Inc. (1993/1994). The Gestalt Manager is
- also emulated and the version I have seen (on a 486DX) says it's a MacPlus
- with a 68LC040 processor with MMU. The 'sysv' selector returns 0x607 but
- it also lists a lot of selectors usually not installed by 6.0.7. Like
- the 'edtn' and 'stdf' selectors. For those it then simply returns zero.
- Strangely enough the 'tabl' selector is not installed, but this doesn't
- confuse the Gestalt! application! (Rene Ros)
-
- GestaltValue
- ------------
- The first time you call NewGestaltValue, the library installs two non-
- relocatable blocks in the system heap and the 'gval' gestalt selector. One
- of the blocks is filled with code: it's actually a gestalt definition that
- implements GestaltValue's shared mechanism. The second block contains the
- selectors and values GestaltValue manages. The response returned by the
- 'gval' selector is a pointer to the second non-relocatable block in the
- system heap. (Marco Piovanelli)
-
- Dave Radcliffe wrote on 23 March 1993 regarding some information, about the
- GestalValue glue code, listed with version 1.4 of this list:
- ---------------------------------------------------------------------------
- The information on the _GestaltValue trap ($ABF2) is correct based on the
- glue, but because of a mistake on my part, the glue should be checking for
- $ABF1. A new version of the glue is being distributed on the developer CD
- next month. If developers need the fixed version sooner, or don't have
- access to the CD, they can write to me at:
-
- radcliff@apple.com
-
- and I'll send them the fixed version.
- ---------------------------------------------------------------------------
-
- Glue code
- ---------
- These development/compiler software contain glue-code to handle a few
- selectors even when the Gestalt Manager is not available.
-
- THINK C (5.0 and later)
- THINK Pascal (4.0 and later)
- MPW (3.2 and later)
-
- The following selectors can be handled by the glue-code, with all others
- an error (gestaltUndefSelectorErr) will be returned.
-
- gestaltAppleTalkVersion = 'atlk';
- gestaltFPUType = 'fpu ';
- gestaltKeyboardType = 'kbd ';
- gestaltLogicalRAMSize = 'lram';
- gestaltMachineType = 'mach';
- gestaltMMUType = 'mmu ';
- gestaltPhysicalRAMSize = 'ram ';
- gestaltProcessorType = 'proc';
- gestaltQuickdrawVersion = 'qd ';
- gestaltSystemVersion = 'sysv';
- gestaltVersion = 'vers';
-
- Unless you are using direct calls, ofcourse.
- (Source: THINK Reference 2.0)
-
- PPC Libraries
- -------------
- Some of the Gestalt selector functions are smart enough to avoid crashing
- when the user removed the library file from the Extensions folder without
- restarting the machine. And some selector functions aren't that smart.
- Safest is to preflight the first call you make into the library (for code
- or data) or include a preflight in your startup.
- (based on a posting by John Baxter in the comp.sys.mac.programmer Usenet
- newsgroup on Internet.)
-
- QuickTime
- ---------
- If you install QuickTime under System 6, a major portion of the Alias
- Manager and FSSpec support is also added. But, QT doesn't implement the
- Gestalt selectors because the implementation is not complete. You must
- check for either Alias Mgr or QuickTime. (Michael Hecht)
-
- These are the limitations for the Alias Mgr installed by QuickTime:
- - NewAlias will accept fromFile parameter, but it never creates a
- relative alias.
- - NewAliasMinimalFromPath and ResolveAliasFile aren't available.
- - ResolveAlias and UpdateAlias ignore the fromFile parameter.
- - MatchAlias may be called but the kARMMultVols, kARMSearchMore and
- kARMSearchRelFirst flags aren't available and ignored if passed.
- Also, a matchProc will never be called.
- - Won't mount network volumes.
-
- And these are the FSSpec calls available with System 6 when QuickTime is
- installed:
- - FSMakeFSSpec
- - FSpOpenDF
- - FSpOpenRF
- - FSpCreate
- - FSpDirCreate
- - FSpDelete
- - FSpGetFInfo
- - FSpSetFInfo
- - FSpSetFLock
- - FSpRstLock
- - FSpRename
- - FSpCatMove
- - FSpOpenResFile
- - FSpCreateResFile
- - FSpGetCatInfo
-
- See for more information Technical Note M.QT.MovieTB.Q&As (QT 510) and
- Develop 11 magazine on page 122.
-
- RAM Doubler 1.0
- ---------------
- It looks like RAM Doubler tricks the system in thinking there is virtual
- memory but actually stores it somewhere else in memory instead to disk
- which we are used to before RAM Doubler came around. It also looks like
- this is done in corporation with Apple since a selector installed by
- RAM Doubler is 'vmem' which is all lower-case and thus reserved by Apple.
- In addition the response from this selector is always LongInt('RaM2') which
- is the creator type of RAM Doubler. It seems this selector is used to
- indicate which software is used to extend the capabilities of the Virtual
- Memory Manager.
- RAM Doubler also installs the selector 'vmFn' which seems to be a pointer
- to a function to control RAMDoubler or to obtain information. It looks like
- registers are used to pass parameters to and from that function. D0 perhaps
- holds values 1 to 6 as input and perhaps A0 is used for the return value.
-
- FUNCTION VMExtensionControl? (selector: Integer; VAR result: LongInt): OSErr;
- Registers on entry D0: selector code
- Registers on exit A0: result code
- D0: error code
- Result codes
- noErr 0 No error
- invalidSelector? 206 Invalid selector value?
- ???
-
- Values used as selector:
- CONST
- kVMControlType? = 1; {type VM extension: RaM2}
- kVMControlVersion? = 2; {version VM extension as BCD}
- kVMControl??? = 3; {engine version as BCD?: $0313}
- kVMControlMemSize? = 4; {unknown: Get/SetMemorySize?}
- kVMControlMemSize? = 5; {unknown: Get/SetMemorySize?}
- kVMControl??? = 6; {unknown}
- kVMContolMaxFunctions? = MAXINT; {returns number of valid selectors}
- {or any other value outside the}
- {current 1-6 range}
-
- Remember: all this is heresay!!!
-
- Because of all this you can imagine RAM Doubler replaces/installs the
- following System Software selectors (and I think it does):
- lram, pgsz, ram , vm , vmbs. (Anonymous, Rene Ros)
-
- Kilo-liners
- ===========
- This chapter will list very small pieces of code which are related to
- any Gestalt Routine.
-
- Direct Gestalt Calls
- --------------------
- You can use the following code to call directly the Gestalt, NewGestalt and
- ReplaceGestalt traps. In that way the (large) glue code will not be
- installed by your compiler. (Contributions by Lawrence D'Oliveiro and
- Marco Piovanelli).
-
- FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
- inline $225F, $201F, $A1AD, $2288, $3E80;
- { move.l (sp)+, a1 }
- { move.l (sp)+, d0 }
- { _Gestalt }
- { move.l a0, (a1) }
- { move.w d0, (sp) }
-
- FUNCTION NewGestalt (selector: OSType;
- gestaltFunction: ProcPtr): OSErr;
- inline $205F, $201F, $A3AD, $3E80;
- { move.l (sp)+, a0 }
- { move.l (sp)+, d0 }
- { _NewGestalt }
- { move.w d0, (sp) }
-
- FUNCTION ReplaceGestalt (selector: OSType;
- gestaltFunction: ProcPtr;
- VAR oldGestaltFunction: ProcPtr): OSErr;
- inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
- { move.l (sp)+, a1 }
- { move.l (sp)+, a0 }
- { move.l (sp)+, d0 }
- { _ReplaceGestalt }
- { move.l a0, (a1) }
- { move.w d0, (sp) }
-
- Direct GestaltValue Calls
- -------------------------
- You can use the following code to call directly the NewGestaltValue,
- ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
- trap is available. *AS04
-
- FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
- inline $303C, $0401, $ABF1;
-
- FUNCTION ReplaceGestaltValue(selector: OSType,
- replacementValue: LongInt): OSErr;
- inline $303C, $0402, $ABF1;
-
- FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
- inline $303C, $0203, $ABF1;
-
- GestaltSelectorZero
- -------------------
- With all the selectors that are supposed to return non-zero values if
- installed, it may be helpful to have an utility routine that returns a zero
- value (instead of an error) if a selector isn't installed. It's short and
- sweet because it makes a direct call to the _Gestalt trap; of course this
- means you can't use it on systems earlier than 6.0.4.
- (Contributed by Lawrence D'Oliveiro)
-
- FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
- {returns the value of the specified Gestalt selector,}
- {or zero if unknown.}
- inline $201F, $A1AD, $6702, $91C8, $2E88;
- { move.l (sp)+, d0 }
- { _Gestalt }
- { beq.s @2 }
- { sub.l a0, a0 }
- { @2: move.l a0, (sp) }
-
- GestaltBitTest
- --------------
- The GestaltBitTest is a piece of inline assembly code which tests if the
- specified bit is set in the value from the specified Gestalt selector
- (false if the Gestalt call returns an error).
-
- Example:
- GestaltBitTest(gestaltAppleEventsAttr, gestaltAppleEventsPresent)
-
- (Contributed by Lawrence D'Oliveiro)
-
- FUNCTION GestaltBitTest(Selector: OSType; BitNr: Integer): Boolean;
- inline
- $321F, $201F, $A1AD, $6702, $91C8, $2008, $0300, $56C0, $4400, $1E80
- { move.w (sp)+, d1 }
- { move.l (sp)+, d0 }
- { _Gestalt }
- { beq.s @2 }
- { sub.l a0, a0 }
- { @2: move.l a0, d0 }
- { btst d1, d0 }
- { sne.b d0 }
- { neg.b d0 }
- { move.b d0, (sp) }
-
- Call Gestalt Function Direct
- ----------------------------
- Suppose you have just loaded an GDEF resource, or replaced one and keep the
- original around and store a pointer to it somewhere private. Suppose next,
- you want to call it to obtain a response without using yet another selector.
- Thats what the following inline code is useful for. Just pass it the
- usual selector and result parameters but also a pointer to the GDEF
- (Lock it if it's a relocatable block).
-
- FUNCTION CallGestaltDEF (selector: OSType;
- var result: LongInt;
- aRoutine: ProcPtr): OSErr;
- inline $205F, $4E90;
- { move.l (sp)+, a0 }
- { jsr (a0) }
-
- Abbreviations
- =============
- A/UX - Apple UNIX
- ADB - Apple Desktop Bus
- AMU - Apple Memory Unit?
- ARTA - Apple Real Time Architecture
- AS - AppleShare
- ASC - Apple Sound Chip
- ASCII - American Standard Code for Information Interchange
- ASIC - Application specfic integrated circuit
- AWAC - Audio Waveform Amplifier and Converter
- Caboose - processor that manages the keyswitch, system power,
- the real-time clock, and parameter RAM
- CDEF - Control DEFinition (code resource)
- CISC - Complex Instruction Set Computer (compare with RISC)
- CLUT/DAC - color look-up table and digital-to-analog converter IC
- Combo - chip, combines the functions of the SCC and the SCSI controller
- CPU - Central Processing Unit
- DAFB - Direct Access Frame Buffer
- DAV - Digital Audio Video (connector)
- DDC - Display Driver Chip
- DFAC - Digitally Filtered Audio Chip
- DITL - Dialog ITems List (resource)
- DLL - Dynamically Linkable Library
- DMA - Direct Memory Access
- DN - Developer Note
- DOS - Disk Operating System (to run a computer???)
- DRAM - Dynamic RAM
- DSP - Digital Signal Processor
- EASC - Enhanced Apple Sound Chip
- FAT - File Allocation Table (?)
- FMC - Fitch Memory Controller
- FPU - Floating Point Unit
- GDEF - Gestalt DEFinition (code resource)
- GPi - General Purpose Input
- IM - Inside Macintosh
- IOP - Input/Output Processor
- IWM - Integrated Woz Machine
- JDB - Junction Data Bus
- JMC - Jaws Memory Controller
- MacOS - Macintosh Operating System
- MCU - Memory Control Unit
- MAE - Macintosh Application Environment (Mac system on UNIX RISC)
- MEO - Macintosh Easy Open
- MMU - Memory Management Unit
- NBP - Name Binding Protocol
- OCE - Open Colloboration Environment
- OMC - Orwell Memory Controller
- OS - Operating System
- OSA - Open Scripting Architecture:
- OSA is the Open Scripting Architecture. It is the layer upon
- which all scripting languages sit and the method by which
- applications call scripts. (Jon Pugh)
- OSL - Object Support Library
- OSS - Operating System Support chip
- PB - PowerBook
- PCI - Peripheral Component Interconnect bus
- PDS - Processor-Direct Slot
- PGC - Parity Generator Chip
- PMMU - Paged Memory Management Unit
- PSRAM - Pseudo Static RAM
- PPC - Process-to-Process Communication, also:
- PowerPC
- ProDOS - Professional Disk Operating System? (OS for the Apple //)
- PWM - Pulse-Width Modulated?
- QD - QuickDraw
- RAM - Random Access Memory (see DRAM & SRAM, compare ROM)
- RAMDAC - Random Access Memory, Digital/Analog Converter
- RBV - RAM-Based Video
- RISC - Reduced Instruction Set Computer (compare with CISC)
- ROM - Read Only Memory
- RSB - Ram Based Sound
- RTC chip - Real-Time Clock chip
- RPU - Random Parity Unit
- SCC - Serial Communications Controller
- SCSI - Small Computer System Interface
- SDP - Standard Directory Package
- SIMM - Single In-line Memory Module
- SMP - Standard Mailer Package
- Sonic - chip for built-in Ethernet
- Sporty - a custom IC that provides sound output amplification functions
- SRAM - Static RAM
- SWIM - Super-Wozniak Integrated Machine OR
- Sanders-Wozniak Integrated Machine
- TE - TextEdit (32Kb limited built-in text-engine)
- TN - Technical Note
- TTS - Text-To-Speech
- VIA - Versatile Interface Adapter
- VRAM - Video RAM
- VM - Virtual Memory
- VDAC - Video Digital to Analog Converter
- YANCC - Yet Another NuBus Controller Chip
-
- FA - File Access
- RA - Remote Access
-
- Sources
- =======
- A Apple Computer, Inc.
- AD Documentation & Magazines
- AD01 MacTCP Programmer's Guide
- AD02 AppleTalk Remote Access API External Reference Specification
- AD03 Macintosh Easy Open programmer's docs
- AD04 Thread Manager 1.1 and 2.0 documentation
- AD05 Drag Manager Programmer's Guide
- AD06 Sound Manager Tech Note on BookMark CD 16
- AD07 Develop 17, p. 123
- AD08 MAE Compatibility Hints
- AD09 Color Matching documentation on ETO 14 and BookMark 18
- AD10 OS Compatability doc on WWDC 1994 CD
- AD11 IM PPC System Software
- AD12 IM OS Utilities
- AD13 Develop 19, p. 105
- AD14 File System Manager Guide, Sep. 1994
-
- AS Software, source code & header files
- AS01 QuickTime ImageCompression source files
- AS02 CommToolbox 1.1 source files
- AS03 MPW Interface files on Bookmark CD 14
- AS04 GestaltEqu header file on ETO 12
- AS05 GestaltEqu header file on ETO 13
- AS06 GestaltEqu header file on BookMark CD 17
- AS07 TSMTE header file on BookMark CD 17
- AS08 AppleScript header file on ETO 14
- AS09 Drag header file on ETO 14
- AS10 XTNDInterface header file on ETO 14
- AS11 ControlStrip header file on BookMark CD 19
- AS12 AppleGuide header file on BookMark CD 18
-
- AT Technical Notes
- AT01 TN M.OV.GestaltSysenvirons (OV 16), May 1987
- AT02 TN M.NW.AppleTalk2 (NW 13), Feb.1992
- AT03 TN M.DV.CD-ROMDriver (DV 22), May 1993
- AT04 TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
- AT05 TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
- AT06 TN OS 05 - System Update 3.0, July 1993/Rev. May 1994
- AT07 TN M.DV.CuriousSCSI, May 1994
-
- S Symantec Corp.
- S01 THINK Pascal 4.0 interface files
- S02 THINK C GestaltGlue source files
- S03 THINK Reference 1.0 and 2.0
-
- M Miscellaneous sources
- M01 Gestalt DA 0.4 1990 (Carl C.Hewitt)
- M02 Gestalt dcmd 1.0 (Eric Simenel, Apple Computer France)
- M03 sysvINIT source files (Apple Computer Japan, Inc.)
- M04 TMON Professional Reference Manual, p.192 (ICOM Simulations)
- M05 AfterDarkGestalt.h file (Berkeley Systems, Inc.)
- M06 SoftwareFPU Programmer Info (John Neil & Associates)
-
- Related Software
- ================
- Listed below is software which may be of interest to developers because
- they are a tool providing information from the Gestalt Manager, include
- Gestalt-related source code or provide additional capabilities to the
- Gestalt Manager. Included is also were you can find or get a copy.
- All software available on sumex-aim.stanford.edu is also available on the
- INFO-MAC CD-ROM by Pacific HiTech, Inc. The INTERNET FTP-sites mentioned
- may have one or more mirror sites as well. Locations on CompuServe are not
- included.
- Some software listed below can also be found at the mail-archive server,
- see the chapter 'Availability' for more information.
-
- 5thColumn, GestaltProbe (Kamran Golriz, Apple Computer Inc.)
- Extension with MPW Tools to query other mac on a network, one of
- the tools is GestaltProbe.
-
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Tools & Applications:Network & Communications:5th Column:
- AEgestalt (Kent Sandvik, Apple Computer Inc.)
- Uses Apple Events to get Gestalt response from remote machine,
- includes C-source. (Requires color?? Doesn't run on MacPlus)
-
- FTP: ftp.apple.com [130.43.2.3]
- ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
- aegestalt-1-0.hqx
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Documentation & Samples:Sample Code:Snippets:
- Platforms & Tools:AEGestalt 1.0:
- AfterDark Gestalt header file (Berkeley Systems, Inc.)
- Header file for using the gestalt selectors used by many screensavers.
-
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get src/AfterDarkGestalt.h
- brklysystm@aol.com (Berkeley Systems Mac Tech Support)
- ask them nicely to email the AfterDarkGestalt.h file.
- DisplayGestalt (Craig Marciniak)
- Small application displays configuration using Gestalt Mgr, includes
- C-source.
-
- FTP: mac.archive.umich.edu [141.211.120.11]
- ftp://mac.archive.umich.edu/development/libraries/
- displaygestalt.cpt.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/displaygestalt.cpt.hqx
- Feature Teller 1.0 (Jennifer Minge, Apple Computer Inc.)
- Sample application quering Gestalt Mgr (or SysEnvirons if not
- available). Includes THINK Pascal source.
-
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Tools & Applications:OS/Toolbox:Feature Teller 1.0:
- Gestalt! 3.0 (Roland Mansson)
- Displays responses from installed selectors.
-
- FTP: ftp.lu.se [130.235.132.90]
- ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
- sumex-aim.stanford.edu [36.44.0.6]
- ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/gestalt-30-app.cpt.hqx
- GestaltDA 0.4 (Carl C. Hewitt, Apple Computer Inc.)
- Displays responses from installed selectors.
-
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Tools & Applications:OS/Toolbox:GestaltDA 0.4
- Gestalt DCMD (Apple Computer Inc.)
- This dcmd (debugger command for MacsBug) allows you to "use" Gestalt
- when you're in MacsBug.
-
- FTP: ftp.apple.com [130.43.2.3]
- ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
- gestalt-dcmd.hqx
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Documentation & Samples:Sample Code:Snippets:
- Platforms & Tools:Gestalt dcmd:
- Gestalt Environment 7
- Application to list a number of installed selectors.
-
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/ge7.hqx
- GestaltExt (Andre Cavegn)
- External for 4TH Dimension Relational Database application from
- ACI/ACI US.
-
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
- gestalt-ext.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/gestalt-ext.hqx
- GestaltGlue (???)
- Glue code and interface in C and assembly.
-
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Documentation & Samples:Sample Code:System 7.0 samples:
- DTS.Utilities:Gestalt*
- Gestalt Pro 1.1.2 (Rene G.A. Ros)
- External for 4TH Dimension Relational Database application from
- ACI/ACI US.
-
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
- gestalt-pro-112.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/gestalt-pro-112-.sit.hqx
- GestaltTalk (Brigham Stevens, Apple Computer DTS)
- Code part of Notification Hacks to show how you can communicate
- between an application and an INIT using the Gestalt Mgr. Includes
- C-source files.
-
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Documentation & Samples:Sample Code:Snippets:
- Toolbox:Notification Hacks:GestaltTalk:
- GestaltValue (anonymous, Apple Computer Inc.)
- Library and interface for use of the GestaltValue functions.
-
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/dev/
- gestalt-value-lib.hqx
- EMAIL: Dave Radcliffe, Mac DTS (radcliff@apple.com)
- gestalt-selectors-list-request@bio.vu.nl
- archive get software/gestaltvalue-lib.hqx
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Tools & Applications:OS/Toolbox:GestaltValue:
- GestaltWatch ext 1.0a1 (Scott Bronson)
- Tracks all calls to NewGestalt and ReplaceGestalt traps.
- Not yet available.
- Gestalt XFCN 3.2.1 (Jeff Iverson)
- Hypercard XFCN to query the Gestalt Manager.
-
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/gestalt-321-xfcn.hqx
- Gestaltzeigen appl 1.0 (B. Kevin Hardman)
- Displays responses from installed selectors and any bit
- interpretation. Not yet available.
- Get Gestalt (AppleScript addition) 1.2 by Mark Alldritt
- Provides access to the Gestalt Manager for AppleScript scripts.
-
- FTP: gaea.kgs.ukans.edu [129.237.140.40]
- ftp://gaea.kgs.ukans.edu/applescript/osaxen/
- ScriptTools1.3.sit.hqx ?
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/scripttools-13.sit.hqx
- Go Gestalt appl 1.0b (Paul Reznick)
- Displays information obtained thru the Gestalt Mgr.
-
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/go-gestalt-10b.sit.hqx
- Informant XFCN 1.0 (Jeff Iverson)
- Hypercard XFCN to query the Gestalt Manager.
-
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/card/
- information-10-xfcn-demo.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/information-10-xfcn-demo.hqx
- Mac Identifier 1.0 (Flux Software, written by Maurice Volaski)
- Fixes the problem of System 7.5 which doesn't display the real
- machine type name anymore.
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/gui/
- mac-identifier-10.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/mac-identifier-10.hqx
- SAVR Gestalt (Thomas Reed)
- Source code (C) demonstrating how to install the Screen saver
- Gestalt selector 'SAVR'.
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get src/gestalt-savr.txt
- Tattle-Tech appl (Decision Makers Software, Inc.)
- Uses Gestalt manager extensively to display all know information.
-
- FTP: sumex-aim.stanford.edu [171.65.4.3]
- ftp://sumex-aim.stanford.edu/info-mac/cfg/
- tattle-tech*.hqx
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/tattle-tech*.hqx
- TechTool appl 1.0.4 (Micromat Computer Systems)
- Application to reset PRAM, rebuild DTDB and show Gestalt info.
-
- EMAIL: gestalt-selectors-list-request@bio.vu.nl
- archive get software/tech-tool-104.hqx
- Technical Notes: (Apple Computer Inc.)
- M.OV.GestaltSysenvirons (Gestalt & SysEnvirons)
- M.NW.AppleTalk2 (AppleTalk The Rest Of the Story)
- M.OS.GestaltMgr.Q&As (Gestalt Manager Questions and Answers)
-
- FTP: ftp.apple.com [130.43.2.3]
- ftp://ftp.apple.com/dts/mac/tn/overview.ov/
- ov-16-gestalt-and-sysenvir.hqx
- ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
- ftp://ftp.apple.com/dts/mac/tn/operating.system.os/
- os-505-gestalt-mgr-qas.hqx
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Documentation & Samples:Mac Tech Notes:
- Overview (OV):OV 16 - Gestalt & SysEnvirons
- Networking (NW):NW 13 - AppleTalk The Rest Of
- Operating System (OS):OS 505 - Gestalt Mgr Q&As
- Test Gestalt (Apple Computer Inc.)
- Examples to test for QuickDraw version and Virtual Memory status,
- includes C-source.
-
- FTP: ftp.apple.com [130.43.2.3]
- ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/
- testgestalt.hqx
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Technical Documentation:Sample Code:Snippets:
- Toolbox:TestGestalt:
- Userfunction Gestalt code (Rich Kubota, Apple Computer Inc.)
- Source code in C for Apple Installer Script writers.
-
- FTP: ftp.apple.com [130.43.2.3]
- ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
- userfunction-gestalt.hqx
- CD-ROM: Bookmark CD (Apple Developer Group)
- :Technical Documentation:Sample Code:Snippets:
- Platforms & Tools:UserFunction Gestalt:
-
- URL
- ===
- Below are all locations of files listed in the URL format, except those
- which can not be described by an URL. They are listed here again, but now
- without linebreaks. This is the only chapter exceeding the 80 characters
- per line limit.
-
- ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
- ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
- ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/userfunction-gestalt.hqx
- ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/testgestalt.hqx
- ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
- ftp://ftp.apple.com/dts/mac/tn/operating.system.os/os-505-gestalt-mgr-qas.hqx
- ftp://ftp.apple.com/dts/mac/tn/overview.ov/ov-16-gestalt-and-sysenvir.hqx
- ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
- ftp://gaea.kgs.ukans.edu/applescript/osaxen/ScriptTools1.3.sit.hqx ?
- ftp://mac.archive.umich.edu/development/libraries/displaygestalt.cpt.hqx
- ftp://merit.edu/pub/ppp/mac/
- ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
- ftp://sumex-aim.stanford.edu/info-mac/card/information-10-xfcn-demo.hqx
- ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
- ftp://sumex-aim.stanford.edu/info-mac/cfg/tattle-tech*.hqx
- ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-ext.hqx
- ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-pro-112.hqx
- ftp://sumex-aim.stanford.edu/info-mac/dev/gestalt-value-lib.hqx
- ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
- ftp://sumex-aim.stanford.edu/info-mac/gui/mac-identifier-10.hqx
- http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
-
- About this list
- ===============
- The Gestalt Manager is a collection of system routines which allows
- applications to test for the availability of software and hardware. Because
- of the increasing number of different software and hardware configurations,
- this is getting an important issue. It probably already is and known by the
- term 'compatability'.
- The Gestalt function allows applications to obtain information about the
- current configuration. Selectors are used to refer to certain information.
- A selector is of type OSType (a four byte value) and usually contain four
- ASCII characters. For example: the selector 'sysv' causes the version of
- the current system is returned. Other functions, NewGestalt and
- ReplaceGestalt, allow programmers to install their own Gestalt selectors.
- Programmers need to know these selectors beforehand to be able to request
- and interpret the value returned by the Gestalt function.
- See for more detailed information on how to use the Gestalt Manager
- routines Inside Macintosh part VI (old series). The new Inside
- Macintosh: Operating System Utilities replaces IM VI.
- When you already have one or more of the new IM issues you may be a bit
- disappointed. I was, because of the very minimal information provided
- regarding the availability of the system routines. Of most routines you
- will find no information on how to test their availability.
-
- This Gestalt Selectors List intends to list all known selectors, but in
- reality this means it lists all selectors known to the editor.
- I would like to see this list to be a combined effort by different persons
- who have together access to a wide area of information.
- This list may contain (educated?) guesses and perhaps even false
- information, so no guarantee is made about the contents.
- You may use this information freely (see Legal Stuff chapter), but when
- you find information not included with this list; please tell me. If you
- have additions, corrections, comments, suggestions, news about available
- software, etc., mail it me. Please, also mention the source you used,
- if any.
- You can send contributions, remarks, etc. to this email address:
- gestalt-selectors-list@bio.vu.nl
- If you want to remain anonymous, please mention this and it will be taken
- care of.
- I don't have all the documentation or knowledge and I don't want to, and
- I'am certainly not Mr.Gestalt.
-
- Availability
- ------------
- If you downloaded this list from CompuServe, a BBS, or any other service,
- you will notice some strange things like 'FTP-sites' which have to do
- with the fact that this list originates from INTERNET.
- You can access the mail archive server also from CompuServe, AOL and
- AppleLink. Contact your network provider for information on how to send
- email to an INTERNET site.
-
- This list is available in the following ways:
-
- **INTERNET**
-
- USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
- This list has become too large to post to c.s.m.p., so starting from
- version 2.2 this list is no longer posted there. Instead an announcement
- will be posted informing were you can find the latest version.
-
- FTP-site
- sumex-aim.stanford.edu [36.44.0.6]
- Every minor and major version is submitted to the info-mac archives:
-
- ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
-
- It is also available on its mirror sites.
- Contact: Info-Mac Moderator (info-mac-request@sumex-aim.stanford.edu)
-
- FINGER
- Using Finger to obtain the latest version is no longer possible.
-
- WWW
- The GSL is also avaible for World Wide Web users together with other
- Macintosh FAQs at:
-
- http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
-
- Contact: Robert Lentz (lentz@rossi.astro.nwu.edu)
-
- **COMPUSERVE**
-
- Starting with version 2.0 this list will be uploaded to the
- Macintosh Developers Forum (MACDEV). Only new minor and major versions
- will be uploaded once. It will then appear in the Tools/Debuggers (13)
- section.
-
- **GENERAL**
-
- CD-ROM or BBS
- Because of permissions I granted you may get this list from a CD-ROM or via
- a BBS from Internet, CompuServe or a CD-ROM. If you do, and the release was
- more than two months ago, there is probably already a newer version.
-
- MAILING LIST
- Every person on the mailing list gets automatically an update by email
- whenever there are some changes. If you want to subscribe or unsubscribe to
- this mailing list you need to send an email to this address:
- gestalt-selectors-list-request@bio.vu.nl
- Then put in the subject line either 'subscribe' or 'unsubscribe'.
-
- The mailing list is moderated, which means everybody can email to:
- gestalt-selectors-list@bio.vu.nl
- But only after approval of the moderator the other subscribers will receive
- your posting. This guarantees that no confidential contribution is
- distributed before the moderator sees it.
-
- This service is only possible to those who have an account on Internet or
- any other network reachable from Internet (CompuServe, AOL, AppleLink,
- Fidonet). I can not provide mailing of printed versions or on disk by
- normal surface mail.
-
- MAIL ARCHIVE SERVER
- Your can retrieve the latest versions of this list and other software
- by sending an email to this address:
- gestalt-selectors-list-request@bio.vu.nl
- In the subject line you need to enter 'archive' and then put one command
- behind it or more in the body of your email. These commands can be:
- help to get some help on using the archive server
- ls <dir> to list the contents of the specified directory
- get <dir>/<file> to have the specified file sent to you by email.
- To obtain the abstracts of all files available you can use this command:
- get ABSTRACTS
-
- Your actions may be logged.
-
- PRINTED
- If you want this list printed on paper you may want to try a feature
- included with the LaserWriter 8 software. With it you can print four
- pages on a single sheet of paper. When you set the page breaks correct,
- this produces a very neat, little booklet.
-
- Acknowledgements
- ----------------
- I want to thank the following persons for their contribution to this list:
-
- ===========================================================================
- Name Internet Email Address
- ---------------------------------------------------------------------------
- Anonymous contributor(s) anonymous@secret.cia
- Lonnie R. Abelbeck abelbeck@dev.abelbeck.com
- Daniel Azuma dazuma@cco.caltech.edu
- J.D. Sterling Babcock jdsb@ee.duke.edu
- John Baxter jwbaxter@pt.olympus.net
- Mason L. Bliss mason@cis.umassd.edu
- Scott Bronson urge@mcl.mcl.ucsb.edu
- Jim Browne jbrowne@ncsa.uiuc.edu
- Richard Buckle richardb@cocytus.demon.co.uk
- Ivan M Cavero Belaunde ivanski@world.std.com
- Marc Cooperman coopem@panix.com
- Mark Dawson marc@apple.com
- Lawrence D'Oliveiro ldo@waikato.ac.nz
- Dave Falkenburg, Apple Computer Inc. falken@apple.com
- Rick Gansler gansler@boardwalk.tiac.net
- M. David Greenspon gremicf@yalevm.ycc.yale.edu
- C.K. Haun haun@apple.com
- Michael Hecht Michael_Hecht@mac.sas.com
- Robert Hess robert_hess@macweek.ziff.com
- Bill Hofmann wdh@netcom.com
- Mark B. Johnson mjohnson@apple.com
- David B. Lamkins dblamkins@aol.com
- Robert Lentz lentz@rossi.astro.nwu.edu
- David Lewis lewis@netcom.com
- Spencer Low spencerl@crl.com
- John Mancino, Decision Maker's Software mancino@decismkr.com
- Roland Mansson roland.mansson@ldc.lu.se
- Matsubayashi Kohji matubays@ics.es.osaka-u.ac.jp
- Duane Murphy, Novell Inc. damurphy@wc.novell.com
- Mark Nagata nagata@kurims.kyoto-u.ac.jp
- Fabrizio Oddone simula3@di.unito.it
- Carl R. Osterwald cro@br213mail.nrel.gov
- Marco Piovanelli piovanel@ghost.dsi.unimi.it
- Kees Pols kpols@bio.vu.nl
- Francois Pottier pottier@clipper.ens.fr
- Jon Pugh jonpugh@netcom.com
- Quinn quinn@cs.uwa.edu.au
- Dave Radcliffe, Apple Computer Inc. radcliff@apple.com
- Thomas Reed reed@telesphere.wustl.edu
- Pete Resnick resnick@cogsci.uiuc.edu
- Paul Reznick PRzeznik@aol.com
- Leonard Rosenthol leonardr@netcom.com
- Jeremy Roussak jeremyr@dcs.qmw.ac.uk
- Ray Sanders 72511.232@CompuServe.COM
- Eric Schlegel, Microsoft Corporation ericsc@microsoft.com
- Mark Simmons 72511.256@CompuServe.COM
- Zalman Stern zalman@adobe.com
- Tim Swihart tim_swihart@quickmail.apple.com
- Ilan Szekely ILANS@ds.huji.ac.il
- Victor Tan victort@extro.ucc.su.oz.au
- Rodrigo Torres, Berkeley Systems brklysystm@aol.com
- Hans Verbrugge hverbrug@knoware.nl
- John Watte d88-jwa@nada.kth.se
- Jonathan Wilson toast@diss.hyphen.com
- Chris Wysocki wysocki@netcom.com
- ---------------------------------------------------------------------------
-
- And my colleagues at the Computer Department of the Biology Faculty of the
- Vrije University in Amsterdam, The Netherlands for their help and support.
- Also special thanks to Marco Piovanelli for his support and comments about
- preliminary versions and updates.
-
- The persons mentioned above provided information used in this list. They
- did this on personal title, NOT on behalf of their employer, unless
- explicitly stated otherwise.
- I assume information you mail to me about Gestalt selectors may be used in
- this list. Information made available to the general public (e.g. a posting
- to a USENET newsgroup) is also included and the persons name added to this
- chapter (and to the mailing list).
- I will mail you back to thank you and include the parts from the list which
- were changed, according to the information you provided, to let you check
- them.
-
- Definitions and Format
- ======================
- This chapter explains where the word 'Gestalt' comes from, a few things
- are defined and it explains how each selector code entry looks like.
-
- Use in Language
- ---------------
- Webster's Dictionary (?):
- ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
- \-<\e>n\ or gestalts (1922)
- [G, lit., shape, form]
- :a structure, configuration, or pattern of physical, biological,
- or psychological phenomena so integrated as to constitute a
- functional unit with properties not derivable by summation of its
- parts.
- German-Dutch dictionary:
- Gestalt w [-en]
- stature, figure, form; Ritter von der Traurigen -, knight of the
- sorrowful figure.
-
- Definitions
- -----------
- Apple Software
- This category includes all selectors installed by software published
- by Apple Computer, Inc.
- Inside Macintosh says this about them:
- "Apple reserves for its own use all four-character sequences
- consisting solely of lowercase letters and non alphabetic ASCII
- characters".
- It includes all selectors of the next two categories:
-
- Apple System Software
- This category includes all selectors installed by System Software from
- Apple Computer, Inc.
-
- Apple Additional Software
- These are selectors installed by additional, non-system, software from
- Apple Computer, Inc.
-
- Third Parties Software
- These are selectors installed by software from parties other than
- Apple Computer, Inc.
- Inside Macintosh says about these:
- "If you have registered a creator string with Apple, you are
- strongly encouraged to use that sequence as your selector code".
- This type of selectors is included in this list with the motto "If you
- don't know they are there, you can't do anything with them".
- Especially the Third Party selectors may change with every new release
- and are therefore only listed in the 'known selectors' part when the
- author has described the structure in the documentation or by email to
- me. These selectors don't have a high priority but when possible I
- want to know at least which software installs it to exclude it as a
- possible "Apple selector".
- Some people at Apple also differentiate between commercial developers
- and others, as being "third" and "fourth" parties respectively. But
- with this list this is not the case.
-
- Format Selector Entry
- ---------------------
- Format used to display information about each selector:
-
- selector code (Software name & type [since version], by company/author)
- constant name
- description
-
- CONST declaration; {remark} *ref.number to source
-
- NOTE and/or WARNING:
-
- Where the type is one of:
- app application (APPL)
- cp control panel (cdev)
- ext extension (INIT/appe/RDEV etc.)
-
- Example:
-
- COLA (Sugarwater ext [1.0] by John Sculley)
- gestaltSugarwaterVersion
- Returns version of Sugarwater as NumVersion.
-
- gestaltSugarwaterVersion = 'COLA'; *AB01
-
- WARNING: This example is fictitious.
-
- NOTE:
- Sugarwater? See the book 'West of Eden, The End of Innocence at
- Apple' by Frank Rose.
-
- Most selectors are listed as four characters, if there are only two or
- three characters displayed the remainder are spaces (or it's a typo!).
- Diacritical characters are shown in the most logical normal character and
- at the end of the entry a note is included about which key-combination to
- press with a normal International system and US keyboard layout to get the
- required diacritical character and also listed is its ASCII code.
- When 'INF' is at the end of the first line it means it is an informational
- selector, all others are environmental selectors.
- The source reference number may also be used in other places than indicated
- above. It then applies to other parts of the entry or to the whole entry.
- A single question mark indicates an uncertainty regarding the information
- in front of the question mark. Three question marks indicate complete
- absence of the information.
- Some constant-names may not originate from official publications.
-
- Format Version Numbers
- ----------------------
- BCD (Binary Coded Decimal)
- $0x0402 means 4.0.2.
- INTEGER
- The decimal representation of the returned value is the version.
- Double BCD (my own fantasy name..., RR)
- $00010108 means 1.1.8.
- NumVersion
- The format of the LongInt response can be coerced into type NumVersion,
- which is the same format as used for the 'vers' resource type.
-
- type
- NumVersion = packed record
- case INTEGER of
- 0: (majorRev: SignedByte; {1st part of version number in BCD}
- minorRev: 0..9; {2nd part is 1 nibble in BCD}
- bugFixRev: 0..9; {3rd part is 1 nibble in BCD}
- stage: SignedByte; {stage code: dev, alpha, beta, final}
- nonRelRev: SignedByte);{revision level of non-released version}
- 1: (version: LONGINT); {to use all 4 fields at one time}
- end;
-
- stage is one of: $20 = development
- $40 = alpha
- $60 = beta
- $80 = final
-
- Legal Stuff
- ===========
- (c) 1992-1994, Rene G.A. Ros
-
- See other sections (below) for remarks regarding liability, trademarks and
- distribution.
-
- Notice of Liability
- -------------------
- The information in this list is distributed on an "AS IS" basis, without
- warranty. While every precaution has been taken in the preparation of this
- list, neither the editor nor any contributor shall have any liability to
- any person or entity with respect to any liability, loss, or damage caused
- or alleged to be caused directly or indirectly by the information contained
- in this list or by the computer software and hardware products described
- herein.
-
- Trademarks
- ----------
- Throughout this list trademarked names are used. Rather than put a
- trademark symbol in every occurrence of a trademarked name, I state I am
- using the names only in an editorial fashion and to the benefit of the
- trademark owner with no intention of infringement of the trademark.
-
- Distribution
- ------------
- The information in this list may be used freely. When you use the
- information in this list for COMMERCIAL purposes, you may consider sending
- the editor a donation. You are not allowed to distribute this list outside
- any computer network (especially printed, on disk or CD-ROM) unless you
- have contacted the editor and received permission to do so. This is also to
- ensure you have the latest version. The updates may not be distributed,
- these are ONLY for the persons on the mailing list.
- You are not allowed to use excerpts of this list with your documentation or,
- in any other way, without prior permission of the editor. You will receive
- permission to include excerpts when you are subscribed to the mailing list.
-
- Permission for distribution of the full list is granted to:
- Aladdin Systems (InstallerMaker software)
- Arizona Macintosh Users Group (BBS in a BOX CD-ROM)
- Club Macintosh de Quebec
- CP Shareware
- IDG Communications Nederland (MacWorld CD-ROM)
- Pacific HiTech, Inc. (Info-Mac CD-ROM)
- Quantum Technologies, Inc. (The Right Stuffed CD-ROM)
-
- You are not allowed to distribute modified versions of this list,
- including, but not limited to, deleting, adding or moving text or adding
- non-text parts. Distribution in any electronical format except a normal
- (or compressed) text file is not allowed without permission.
- You are not allowed to redistribute it with any other name than
- 'gestalt-selectors-XX.YYY' (where XX is the version number and YYY the suffix
- to indicate compression etc.) unless because of technical reasons. In such
- case a name should be chosen which resambles it as closely as possible to
- avoid confusion.
-
- Editor's Address
- ================
- Rene G.A. Ros
- student Computer Science (fulltime),
- Hogeschool van Amsterdam (Institute of Technology)
- member Computer Department (parttime),
- Biology Faculty, Vrije University Amsterdam
- contract programmer Pascal and C, also 4th Dimension and other data-bases
-
- Internet : rgaros@bio.vu.nl (preferred)
- rgaros@nikhefk.nikhef.nl
- rgaros@htsa.hva.nl
- rgaros@dds.hacktic.nl
- CompuServe: >INTERNET: rgaros@bio.vu.nl
- 100112,1363
-
- Mailing list:
- Internet contributions:
- gestalt-selectors-list@bio.vu.nl
-
- to subscribed/unsubscribe and for the archive server:
- gestalt-selectors-list-request@bio.vu.nl
-
- CompuServe contributions:
- >INTERNET: gestalt-selectors-list@bio.vu.nl
-
- to subscribed/unsubscribe and for the archive server:
- >INTERNET: gestalt-selectors-list-request@bio.vu.nl
-
- Please contact me at the INTERNET address. I read my mail there almost
- daily, while I log on to CompuServe only once or twice a month.
-